Python 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)

我是PyQT5的新手,我希望有几个按钮,并让最后一个按钮处于“选中”状态。单击另一个按钮时,上一个按钮将被“取消选中”,而单击的按钮将被“选中”

  • 通过setCheckable使按钮可检查(True)
  • 将按钮添加到QButtonGroup()中,其余按钮将自动排序:

    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()
    
  • 通过setCheckable使按钮可检查(True)
  • 将按钮添加到QButtonGroup()中,其余按钮将自动排序:

    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实际上,单击时要检查的正确设置按钮将用于了解用户当前按下的按钮。实际上,单击时要检查的正确设置按钮将用于了解用户当前按下的按钮。