2017-01-11 13 views
0

Есть ли способ сделать QAction остановиться после нажатия. В идеале он мог переключаться между двумя состояниями: On (вниз) и Off (вверх)?Как сделать toggle-able QAction

+0

http://stackoverflow.com/questions/13506201/how-to-add-check-uncheck-qaction-in-the-context-menu – furas

+0

Я честно не имею копать здесь, но вы на миссию написать весь свой pyqt-код, не прочитав никакой документации? Мне просто интересно, почему вы, по-видимому, потратили на это час, когда вам понадобится всего несколько минут, чтобы проконсультироваться с [Qt docs for QAction] (https://doc.qt.io/qt-4.8/ qaction.html # checked-prop) и найдите все необходимые ответы. В качестве дополнительного бонуса в этом конкретном случае вы также могли бы найти лучший сигнал для использования (т. Е. «Переключено» * или «запустили»). – ekhumoro

+0

Спасибо за подсказку 'toggled' vs' triggered'! Я не в командировке. Мне просто нравится Stackoverflow. – alphanumeric

ответ

1

Что вы ищете, это кнопка переключения. Это реализовано в Qt с помощью проверяемого свойства: если действие можно проверить, тогда, когда действие будет нажатием кнопки, кнопка является кнопкой переключения; когда действие находится в пункте меню, вы видите галочку; и т. д.

0
action = QtGui.QAction(QtGui.QIcon("myicon.png"),"Action Name", None) 
action.setCheckable(True) 
action.setStatusTip("Tooltip") 
action.setShortcut("Ctrl+D") 
action.triggered.connect(actionTrigged) 
+2

вы могли бы описать ее - чтобы сделать ответ еще лучше. – furas