Python PyQt QtoolbuttonPopup mode

Из того, что я понял из интернет-ресурсов, я мог создать всплывающее меню QActions на Qtoolbar используя Qtoolbuttonpopup Режим.

Итак, я создал QMenu и добавил несколько QActions к нему с помощью QMenu.addAction,

После этого я создал QToolButton и установить ToolButtonPopupMode в 2, Затем установите QMenu я создал выше как меню для него с помощью .setMenu(QMenu)

    SettingMenu = QtGui.QMenu()
    SettingMenu.addAction(Action1)
    SettingMenu.addAction(Action2)

    SettingButton = QtGui.QToolButton()
    SettingButton.setIcon(QtGui.QIcon(QtGui.QPixmap(':/setting.png')))
    SettingButton.ToolButtonPopupMode(2)
    SettingButton.setMenu(SettingMenu)

из приведенного выше кода, я ожидаю иметь Qtoolbutton на моей панели инструментов, и когда я нажимаю на нее, должно появиться меню с 2 действиями. Но когда я запускаю код, я вижу только Qtoolbutton на моей панели инструментов, но когда я нажимаю Qtoolbutton это не создает никакого всплывающего меню.

Я делаю это неправильно? Как создать инструментальную кнопку, которая создает всплывающее меню действий при щелчке пользователя?

1 ответ

Решение

ToolButtonPopupMode является типом перечисления. Все значения в этом перечислении являются экземплярами этого типа. Поскольку он наследует от int, вызов его с целым числом возвращает то же самое целое число. Однако вы хотите установить свойство popupMode, поэтому используйте setPopupMode(2),

Другие вопросы по тегам