在QCurs中使用自定义图像

2024-09-28 20:58:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.bmp图像,我想用它作为图形用户界面的光标。QCursor Documentation表明这是可能的(“要用你自己的位图创建一个游标,要么使用QCursor构造函数(它接受一个位图和一个掩码,要么使用一个pixmap作为参数的构造函数”),但是当我得到“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()

Tags: imageimportself参数initdefsyswindow
1条回答
网友
1楼 · 发布于 2024-09-28 20:58:57

如果它可以帮助任何人在google上搜索到这里,并且可以给whatEverColor一个值作为透明颜色。在__init__中:

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

相关问题 更多 >