在 QCursor 中使用自定义图像
Use custom image in QCursor
我有一个 .bmp 图像,我想将其用作我的 GUI 的光标。 QCursor Documentation 表明这是可能的 ("To create a cursor with your own bitmap, either use the QCursor constructor which takes a bitmap and a mask or the constructor which takes a pixmap as arguments") 但我似乎无法让它工作,因为我得到“TypeError: QCursor(): argument 1 has unexpected type '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()
如果它可以帮助任何人谷歌搜索到这里,并且你可以给 whatEverColor
一个值作为透明颜色。在 __init__
中:
pm = QtGui.QPixmap('image.bmp')
bm = pm.createMaskFromColor(whatEverColor, Qt.MaskOutColor)
pm.setAlphaChannel(bm)
cursor = QtGui.QCursor(pm)
self.setCursor(cursor)
我有一个 .bmp 图像,我想将其用作我的 GUI 的光标。 QCursor Documentation 表明这是可能的 ("To create a cursor with your own bitmap, either use the QCursor constructor which takes a bitmap and a mask or the constructor which takes a pixmap as arguments") 但我似乎无法让它工作,因为我得到“TypeError: QCursor(): argument 1 has unexpected type '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()
如果它可以帮助任何人谷歌搜索到这里,并且你可以给 whatEverColor
一个值作为透明颜色。在 __init__
中:
pm = QtGui.QPixmap('image.bmp')
bm = pm.createMaskFromColor(whatEverColor, Qt.MaskOutColor)
pm.setAlphaChannel(bm)
cursor = QtGui.QCursor(pm)
self.setCursor(cursor)