gpt4 book ai didi

Python 和 PyQt4 : setMenu method not working on a pushButton object

转载 作者:太空宇宙 更新时间:2023-11-03 18:36:13 27 4
gpt4 key购买 nike

我对 PyQt 还很陌生,我正在开发一个 PyQt4 GUI,它的按钮定义如下:

self.buttonFormule11=QtGui.QPushButton(self.centralwidget)
self.buttonFormule11.setGeometry(QtCore.QRect(268, 696, 19, 23))
self.buttonFormule11.setObjectName(_fromUtf8("buttonFormule11"))
self.buttonFormule11.setFlat(True)

我想在其上设置一个菜单,因此我尝试遵循同一界面中其他按钮的相同逻辑(我没有编程):

self.listeWhenDefault = ["Option1", "Option2", "Option3"] 
self.MenuWhenIndicateur = QtGui.QMenu(self.centralwidget)
for option in self.listeWhenDefault:
checkBox = QtGui.QRadioButton(option,self.MenuWhenIndicateur)
checkableAction = QtGui.QWidgetAction(self.MenuWhenIndicateur)
checkableAction.setDefaultWidget(checkBox)
self.MenuWhenIndicateur.addAction(checkableAction)
QtCore.QObject.connect(checkBox, QtCore.SIGNAL("toggled(bool)"), self.majWhenFormule) #here it should just modify the text shown into a line edit close to the push button, not relevant

self.buttonFormule11.setMenu(self.MenuWhenIndicateur)

但是,此过程不起作用,因为当我单击按钮时没有显示菜单。谁能告诉我我是否忘记了什么/在哪里出错了?

最佳答案

您发布的代码似乎没有任何问题(我测试过,它对我有用)。所以问题一定出在代码的其他地方。

但是,我认为示例代码使用了一种有点奇怪的方法,因此我重新编写了它以使用 QActionGroup相反。

这是一个简单的演示:

from PyQt4 import QtGui

class Window(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
self.button = QtGui.QPushButton('Test', self)
layout = QtGui.QVBoxLayout(self)
layout.addWidget(self.button)
menu = QtGui.QMenu(self.button)
group = QtGui.QActionGroup(self.button)
group.setExclusive(True)
for index in range(1, 4):
action = group.addAction('Option%d' % index)
action.setCheckable(True)
if index == 1:
action.setChecked(True)
menu.addAction(action)
self.button.setMenu(menu)
group.triggered.connect(self.handleOptionTriggered)

def handleOptionTriggered(self, action):
print(action.text())

if __name__ == '__main__':

import sys
app = QtGui.QApplication(sys.argv)
window = Window()
window.setGeometry(500, 300, 200, 100)
window.show()
sys.exit(app.exec_())

关于Python 和 PyQt4 : setMenu method not working on a pushButton object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21547097/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com