继承 QObject
提供 一个抽象的按钮容器, 可以将多个按钮划分为一组,不具备可视化的效果,一般放的都是可以被检查的按钮
import sys from PyQt5.QtWidgets import QApplication, QWidget, QRadioButton,QButtonGroup class Demo(QWidget): def __init__(self): super(Demo, self).__init__() self.resize(300,300) self.rb1=QRadioButton('男',self) self.rb2 = QRadioButton('女', self) self.rb3 = QRadioButton('是', self) self.rb4 = QRadioButton('否', self) self.rb = QRadioButton('人妖', self) self.rb1.move(50,50) self.rb2.move(50, 80) self.rb.move(50, 110) self.rb3.move(150, 50) self.rb4.move(150, 80) self.rb1.setChecked(True) zu1=QButtonGroup(self) #创建一个按钮分组实例 zu2 = QButtonGroup(self) zu1.addButton(self.rb1,1) #给按钮分组实例添加按钮 #参数2 给按钮设置一个id,不同分组的id可以重复 #如果id为-1,则将为该按钮分配一个id。自动分配的ID保证为负数,从-2开始。 zu1.addButton(self.rb2,2) zu1.addButton(self.rb, 3) zu2.addButton(self.rb3) zu2.addButton(self.rb4) print(zu1.buttons()) #返回按钮组中的所有按钮 print(zu1.button(2)) #返回按钮组中指定按钮 print(zu1.checkedButton()) #返回按钮组中被选中的按钮 zu1.removeButton(self.rb) #从按钮组中移除指定按钮;不是删除按钮 zu2.setId(self.rb3,4) #给组中的按钮设置id zu2.setId(self.rb4, 5) print(zu2.id(self.rb3)) #返回按钮id #如果不存在此按钮,则返回-1 print(zu1.checkedId()) #返回选中按钮的id zu2.setExclusive(True) #独占 ??? #zu2.buttonClicked.connect(self.A) #组中按钮被点击时发出信号 #会向槽函数传递被点击的按钮 #zu2.buttonClicked[int].connect(self.A) # 组中按钮被点击时发出信号 # [int]会向槽函数传递被点击按钮的id,而不是传递按钮 zu2.buttonToggled.connect(self.B) #当按钮组中的按钮被切换状态时, 发射此信号 #会向槽函数传递状态发生改变的按钮 def B(self,i): print('zu2切换了按钮',i) def A(self,i): print('zu2被点击了',i) if __name__ == '__main__': app = QApplication(sys.argv) demo = Demo() demo.show() sys.exit(app.exec_())
buttonPressed(int/QAbstractButton) 当按钮组中的按钮被按下时, 发射此信号
buttonReleased(int/QAbstractButton) 当按钮组中的按钮被释放时, 发射此信号
天子骄龙