Как мне установить собственный курсор?

Я хочу установить собственную иконку курсора, которая должна меняться при наведении на определённый объект или тип объекта

import sys
from PyQt5 import QtWidgets

class Test(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.resize(500, 500)

        block = QtWidgets.QWidget(self)
        block.resize(100, 100)
        block.setStyleSheet('background:red;cursor : url("1.png"), auto;')

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = Test()
    w.show()
sys.exit(app.exec_())

Ответы (2 шт):

Автор решения: S. Nick

cursor : QCursor https://doc.qt.io/qt-5/qwidget.html#cursor-prop

Это свойство содержит форму курсора для этого виджета. Курсор мыши примет эту форму, когда окажется над этим виджетом.

QWidget.setCursor(const QCursor &)

import sys
from PyQt5 import QtWidgets
from PyQt5.Qt import *

class Test(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.resize(500, 500)

        block = QtWidgets.QWidget(self)
        block.resize(100, 100)
#        block.setStyleSheet('background:red;  cursor: url("im.png"), auto;')
        block.setStyleSheet('background:red;')
        
        block.setCursor(QCursor(Qt.CrossCursor))              # <-----


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = Test()
    w.show()
    sys.exit(app.exec_())

Update

я засомневался, что мой первые ответ, это то что вы хотели. Вот второй вариант:

import sys
from PyQt5 import QtCore, QtGui, QtWidgets


class Test(QtWidgets.QWidget):
    def __init__(self):
        super().__init__()
        self.resize(500, 500)

        block = QtWidgets.QWidget(self)
        block.resize(100, 100)
        block.setStyleSheet('background: #5f9;') #cursor : url("1.png"), auto;')
        
        pixmap = QtGui.QPixmap('_+_.png').scaled(80, 80) 
        cursor = QtGui.QCursor(pixmap)
        block.setCursor(cursor)
        

if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    w = Test()
    w.show()
    sys.exit(app.exec_())

_+_.png

введите сюда описание изображения

→ Ссылка
Автор решения: Yuri_Kravt

Класс QCursor позволяет создать объект курсора с изображением любой формы. Чтобы загрузить изображение, следует передать путь к файлу конструктору класса QPixmap. Для создания объекта курсора необходимо передать конструктору класса QCursor в первом параметре экземпляр класса QPixmap, а во втором и третьем параметрах - координаты "горячей" точки будущего курсора. Пример создания и установки пользовательского курсора: self.setCursor(QtGui.QCursor(QtGui.QPixmap("cursor.png"), 0, 0) ссылка

→ Ссылка