Python pyqt5显示单击了哪个按钮
我是PyQT5的新手,我希望有几个按钮,并让最后一个按钮处于“选中”状态。单击另一个按钮时,上一个按钮将被“取消选中”,而单击的按钮将被“选中”Python pyqt5显示单击了哪个按钮,python,pyqt,pyqt5,qbuttongroup,Python,Pyqt,Pyqt5,Qbuttongroup,我是PyQT5的新手,我希望有几个按钮,并让最后一个按钮处于“选中”状态。单击另一个按钮时,上一个按钮将被“取消选中”,而单击的按钮将被“选中” 通过setCheckable使按钮可检查(True) 将按钮添加到QButtonGroup()中,其余按钮将自动排序: class Example(QWidget): def __init__(self): super().__init__() self.setGeometry(30, 30, 400, 200)
class Example(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(30, 30, 400, 200)
self.initUI()
def initUI(self):
self.button1 = QPushButton(self)
self.button1.setGeometry(40, 40, 100, 50)
self.button1.setText("Button 1")
self.button1.setCheckable(True)
self.button2 = QPushButton(self)
self.button2.setGeometry(150, 40, 100, 50)
self.button2.setText("Button 2")
self.button2.setCheckable(True)
self.my_button_group = QButtonGroup()
self.my_button_group.addButton(self.button1)
self.my_button_group.addButton(self.button2)
self.show()
class Example(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(30, 30, 400, 200)
self.initUI()
def initUI(self):
self.button1 = QPushButton(self)
self.button1.setGeometry(40, 40, 100, 50)
self.button1.setText("Button 1")
self.button1.setCheckable(True)
self.button2 = QPushButton(self)
self.button2.setGeometry(150, 40, 100, 50)
self.button2.setText("Button 2")
self.button2.setCheckable(True)
self.my_button_group = QButtonGroup()
self.my_button_group.addButton(self.button1)
self.my_button_group.addButton(self.button2)
self.show()
在代码的基础上,您可以将
button1
和button2
添加到QButtonGroup
,并将exclusive
属性设置为True
class Example(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(30, 30, 400, 200)
self.initUI()
def initUI(self):
self.button1 = QPushButton(self)
self.button1.setGeometry(40, 40, 100, 50)
self.button1.setText("Button 1")
self.button2 = QPushButton(self)
self.button2.setGeometry(150, 40, 100, 50)
self.button2.setText("Button 2")
self.btn_grp = QButtonGroup()
self.btn_grp.setExclusive(True)
self.btn_grp.addButton(self.button1)
self.btn_grp.addButton(self.button2)
self.btn_grp.buttonClicked.connect(self.on_click)
self.show()
def on_click(self, btn):
pass # do something with the button clicked
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在这里,我还将一个空插槽连接到信号QButtonGroup.buttonClicked
,该信号在单击组中的按钮时发出
要找出哪个按钮是当前选中的按钮,可以调用方法
QButtonGroup.checkedButton()
和QButtonGroup.checkedd()
。前者将返回一个QButton
对象,后者将返回一个索引int
,对应于按钮添加到组中的顺序。构建代码,您可以将button1
和button2
添加到QButtonGroup
,并将exclusive
属性设置为True
class Example(QWidget):
def __init__(self):
super().__init__()
self.setGeometry(30, 30, 400, 200)
self.initUI()
def initUI(self):
self.button1 = QPushButton(self)
self.button1.setGeometry(40, 40, 100, 50)
self.button1.setText("Button 1")
self.button2 = QPushButton(self)
self.button2.setGeometry(150, 40, 100, 50)
self.button2.setText("Button 2")
self.btn_grp = QButtonGroup()
self.btn_grp.setExclusive(True)
self.btn_grp.addButton(self.button1)
self.btn_grp.addButton(self.button2)
self.btn_grp.buttonClicked.connect(self.on_click)
self.show()
def on_click(self, btn):
pass # do something with the button clicked
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在这里,我还将一个空插槽连接到信号QButtonGroup.buttonClicked
,该信号在单击组中的按钮时发出
要找出哪个按钮是当前选中的按钮,可以调用方法
QButtonGroup.checkedButton()
和QButtonGroup.checkedd()
。前者将返回一个QButton
对象,后者将返回一个索引int
,对应于按钮添加到组中的顺序。如何从“on_click”方法内部调用“QButtonGroup.checkedButton()”?您正在传递QPushButton,所以您可以询问btn.text(),但如何从按钮本身检查组?答案很好。值得一提的是,根据docs,属性默认为true。如何从“on_click”方法内部调用“QButtonGroup.checkedButton()”?您正在传递QPushButton,所以您可以询问btn.text(),但如何从按钮本身检查组?答案很好。值得一提的是,根据文件,属性默认为True实际上,单击时要检查的正确设置按钮将用于了解用户当前按下的按钮。实际上,单击时要检查的正确设置按钮将用于了解用户当前按下的按钮。