zoukankan      html  css  js  c++  java
  • 按钮类控件-QRadioButton

    QRadioButton类继承自QAbstractButton类。单选按钮是一种开关按钮,可以切换为on或off,及checked或者unchecked,主要是为用户提供“多选一”的选择。

    QRadioButton是单选按钮控件默认是独占的(Exclusive)。对于继承自同一个父类Widget的多个单选按钮,它们属于同一个按钮组合,在单选按钮组里,一次只能选择一个单选按钮。如果需要对哦个独占的按钮组合,则需要将它们放在QGroupBox或QButtonGroup中。

    当单选按钮切换到on或off时,就会发生toggled信号,绑定这个信号,在按钮状态发生改变时,触发相应的行为。

    QRadioButton类中的常用方法:

      setChecked()    设置按钮是否已经被选中,可以改变单选按钮的选中状态,如果设置为True,则表示单选按钮将保持已点击和释放状态

      isChecked()      返回单选按钮的状态。返回值为True或False

      setText()      设置单选按钮的显示文本

      text()         返回单选按钮的显示文本

    在RadioButton中,toggled信号是在切换单选按钮状态(开、关)时发射的,而clicked信号则在每次点击单选按钮时都会发射。在实际中,一般只有状态改变时才有必要去响应,因此toggled信号更适合用于状态监控。

    案例15  QRadioButton按钮的使用

    import sys
    from PyQt5.QtWidgets import QWidget, QApplication, QHBoxLayout, QRadioButton
    
    
    class RadioDemo(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
            layout = QHBoxLayout()
            self.btn1 = QRadioButton("Button1")
            self.btn1.setChecked(True)  # 默认选中
            self.btn1.toggled.connect(lambda: self.btnstate(self.btn1))
            layout.addWidget(self.btn1)
    
            self.btn2 = QRadioButton("Button2")
            self.btn2.toggled.connect(lambda: self.btnstate(self.btn2))
            layout.addWidget(self.btn2)
    
            self.setLayout(layout)
            self.setWindowTitle("RadioButton Demo")
    
        def btnstate(self, btn):
            if btn.text() == "Button1":
                if btn.isChecked() == True:
                    print(btn.text() + " is selected")
                else:
                    print(btn.text() + " is deselected")
    
            if btn.text() == "Button2":
                if btn.isChecked() == True:
                    print(btn.text() + " is selected")
                else:
                    print(btn.text() + " is deselected")
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        radiodemo = RadioDemo()
        radiodemo.show()
        sys.exit(app.exec_())
  • 相关阅读:
    Sentinel实现熔断和限流
    Nacos 服务注册和配置中心
    SpringCloud Sleuth 分布式请求链路跟踪
    SpringCloud Stream消息驱动
    SpringCloud Bus消息总线
    SpringCloud Config分布式配置中心
    Geteway服务网关
    Hystrix断路器
    libecc:一个可移植的椭圆曲线密码学库
    第四十二个知识点:看看你的C代码为蒙哥马利乘法,你能确定它可能在哪里泄漏侧信道路吗?
  • 原文地址:https://www.cnblogs.com/lynsha/p/13405352.html
Copyright © 2011-2022 走看看