zoukankan      html  css  js  c++  java
  • QButtonGroup按钮组

    继承  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)     当按钮组中的按钮被释放时, 发射此信号

    天子骄龙

  • 相关阅读:
    转ANYTAO的学习方法
    第一次写文章
    分享一个有趣的学习方法,欢迎一起探讨如何提高学习兴趣
    SQL基础
    insert into 后获得自动插入的id(select @@identity)
    如何向ASP.NET Web 服务器控件添加客户端脚本事件
    关键字using的主要用途
    网页设计师必备的10个CSS技巧
    DataSet与DataReader的区别
    由于系统时间修改导致Oracle启动失败
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10778943.html
Copyright © 2011-2022 走看看