是否可以将参数传递给 PyQt4 Signal 连接?在我的情况下,我有n 个按钮,它们设置了在界面上动态创建的相同菜单,具体取决于用户的输入:
for j in range(0, len(self.InputList)):
arrow = QtGui.QPushButton(Form)
arrow.setGeometry(QtCore.QRect(350, 40*(j+3)+15, 19, 23))
menu = QtGui.QMenu(Form)
for element in SomeList:
cb = QtGui.QRadioButton(element,menu)
ca = QtGui.QWidgetAction(menu)
ca.setDefaultWidget(cb)
QtCore.QObject.connect(cb,QtCore.SIGNAL("stateChanged(int)"),self.SomeFunction)
arrow.setMenu(menu)
尽管界面中所有按钮的菜单都是相同的,但用户应该能够从任何按钮中选择一个值,并且对于其中任何一个按钮,操作都是相同的(“将选定的值添加到行编辑") 唯一的区别是行编辑可能是第1行以及第2行和第 3行。
那么,我想问的是,是否有任何方法可以在这里传递参数j:
QtCore.QObject.connect(cb,QtCore.SIGNAL("stateChanged(int)"),self.SomeFunction(j))
示例:
在这个执行中,用户的输入是 3,所以我将有 3 行编辑和三个具有相同菜单的按钮:
Line Edit 1:
Line Edit 2:
Line Edit 3:
使用相同的功能SomeFunction
,我想编辑 Line Edits 的值。因此,如果用户正在触摸附加到第二行编辑的菜单,SomeFunction
则应使用参数 2 调用该函数SomeFunction(2)
,因此相同的方法将自行了解哪一行编辑是正确的:
Line Edit 1:
Line Edit 2: modified
Line Edit 3:
我需要这个,因为主窗口上的行编辑数量取决于用户选择的内容。我是一个新手,到目前为止,我总是为 GUI 中的任何对象创建一个函数,但这次数字是动态的,我确信有一些更优雅的方法来创建这种信号连接,我虽然到目前为止我的文档阅读还没有理解。