PySide/PyQt: 指向手形光标的实现?
我有一个使用pyside制作的应用程序,里面有很多按钮、工具按钮、标签页等等。我希望当鼠标悬停或点击这些控件时,光标能变成“指向手”的样子。这就意味着我的代码里有很多类似这样的语句:
someWidget.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
这行代码相对比较长,看起来也不太好。 我可以把上面的代码封装成一个函数:
def hand_cursor(widget):
widget.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
这样的话,剩下的代码看起来就整洁多了:
hand_cursor(someWidget)
但是我还是得到处写那行代码。
有没有人知道有什么方法或者技巧,可以让我所有的按钮、标签栏等等都能在不重复写代码的情况下,显示“指向手”的光标呢?
1 个回答
1
我建议你先列出所有你想要这种行为的小部件,然后用一个循环来处理它们:
widgetsToChange = [someWidget, anotherWidget, ...]
for w in widgetsToChange:
hand_cursor(w)
#or w.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
你也可以使用 QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
这个命令来改变整个应用程序的光标样式。