2014-09-03 2 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)) изменить для всех приложений.

Смежные вопросы