2013-11-14 1 views
1

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

Итак, я создал 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 на моей панели инструментов, и когда я нажимаю на него, он должен появиться меню с двумя действиями. Но когда я запускаю код, все, что я вижу, это Qtoolbutton на моей панели инструментов, но когда я нажимаю Qtoolbutton, он не создает всплывающее меню.

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

ответ

1

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