2014-09-03 93 views
2

我有一个pyside应用程序,有很多按钮,工具按钮,标签等......我希望所有人在悬停/点击时都有一个“指针”光标。这意味着我的代码充满了这样的陈述:PySide/PyQt:PointingHandCursor食谱?

someWidget.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 

这是一条相对较长,很丑的线。 我可以封装上面的功能:

def hand_cursor(widget): 
    widget.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 

这使得代码的其余稍微整洁:

hand_cursor(someWidget) 

但我仍然需要编写该行所有的地方。

有没有人知道一个配方/诀窍能够让我所有的按钮,标签栏等有指针手形光标没有重复自己遍地?

回答

0

我会维护所有您想要这种行为的小部件列表和循环:

widgetsToChange = [someWidget, anotherWidget, ...] 
for w in widgetsToChange: 
    hand_cursor(w) 
    #or w.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor)) 

您还可以使用QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))更改所有应用程序。