Qt Python 单选按钮:激活事件
我正在为一个客户开发一个项目,设计中有一个单选按钮,用户只能选择一个选项。
这里有一段代码,可以显示两个漂亮的单选按钮:
self.performGroupBox = QtGui.QGroupBox(self.centralwidget)
self.performGroupBox.setGeometry(QtCore.QRect(50, 20, 181, 121))
self.performGroupBox.setObjectName("performGroupBox")
self.consultRadioButton = QtGui.QRadioButton(self.performGroupBox)
self.consultRadioButton.setGeometry(QtCore.QRect(40, 30, 84, 18))
self.consultRadioButton.setObjectName("consultRadioButton")
self.insertRadioButton = QtGui.QRadioButton(self.performGroupBox)
self.insertRadioButton.setGeometry(QtCore.QRect(40, 60, 84, 18))
self.insertRadioButton.setObjectName("insertRadioButton")
它的样子就是这样:
perform:
() Consult
() Insert
关键是,怎么知道用户选择了哪个选项:是“consultRadioButton”还是“insertRadioButton”?
这里有一个示例,试图获取这个信息:
if self.consultRadioButton.isChecked():
self.call_Consult()
if self.insertRadioButton.isChecked():
self.call_Insert()
但是当选择单选按钮时,它并没有任何反应。
另外,使用 connect 可能是另一个选择:
QtCore.QObject.connect(self.consultRadioButton, QtCore.SIGNAL("currentIndexChanged(QString)"), self.call_Consult)
QtCore.QObject.connect(self.insertRadioButton, QtCore.SIGNAL("currentIndexChanged(QString)"), self.call_Insert)
但这也没有奏效。
这里缺少了什么呢……有什么建议吗?
欢迎大家留言讨论,非常感谢!
4 个回答
0
看看QButtonGroup这个类。
1
这里有一个解决方案...现在可以用了:
QtCore.QObject.connect(self.radioButton1,QtCore.SIGNAL("toggled(bool)"),self.radio_activateInput)
当把一个布尔参数(也就是真或假)包含到切换信号里时,它就能正常工作了。
10
试试这个信号:
void toggled (bool)
https://doc.qt.io/qt-5/qabstractbutton.html#toggle
还有一个示例用法:
https://www.tutorialspoint.com/pyqt/pyqt_qradiobutton_widget.htm