小编典典

在QCursor中使用自定义图像

python

我有一个.bmp图像,我想将其用作GUI的光标。该QCursor文件表明,这是可能的(“要创建自己的位图光标,要么使用QCursor构造函数需要一个位图和一个口罩或需要一个像素图作为参数构造函数”),但我似乎无法得到它在我收到’TypeError:QCursor():当我尝试将建议的模块与位图一起使用时,参数1具有意外的类型’str’时起作用。应该怎么做?

下面是产生上述错误的代码。该文档还建议将Alpha蒙版和其他两个值传递到QCursor中,但是我不确定这些是否必要,如果需要则应该是什么。

import sys
from PyQt4 import QtGui, QtCore

QtGui.QCursor('image.bmp')

class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 500, 300)
        cursor = QtGui.QPixmap('image.bmp')
        self.setCursor(QtGui.QCursor(cursor))
        self.home()

    def home(self):
        btn = QtGui.QPushButton("Quit", self)
        btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        btn.resize(100,100)
        btn.move(100,100)
        self.show()


def run():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())

run()

阅读 475

收藏
2021-01-20

共1个答案

小编典典

如果它可以帮助任何人在这里进行搜索,并且可以提供whatEverColor透明色,则可以为您提供一个值。在__init__

pm = QtGui.QPixmap('image.bmp')
bm = pm.createMaskFromColor(whatEverColor, Qt.MaskOutColor)
pm.setAlphaChannel(bm)
cursor = QtGui.QCursor(pm)
self.setCursor(cursor)
2021-01-20