zoukankan      html  css  js  c++  java
  • QRadioButton

    QRadioButton

    该类提供了一组可供选择的按钮和文本标签,用户可以选择其中一个选项,标签用于显示对应的文本信息。单选钮是一种开关按钮,可以切换为on或者off,急checked或者unchecked,主要是为用户提供“多选一”的选择。

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

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

    QRadioButton类中的常用方法如下所示:

     

    方法描述
    setCheckable() 设置按钮是否被选中,可以改变单选钮的选中状态,如果设置为True,则表示单选钮将保持已点击或释放状态。
    isChecked() 返回单选按钮的状态。设置返回值True或False
    setText() 设置单选按钮的显示文本
    text() 返回单选钮的显示文本

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

    QRadioButton按钮的使用

    代码:

    import sys
    from PyQt5.QtCore import *
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import *


    class RedioDemo(QWidget):
       def __init__(self):
           super(RedioDemo, self).__init__()

           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")
           self.resize(100,100)


       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 = RedioDemo()
       radioDemo.show()
       sys.exit(app.exec_())

    效果如图所示:

     

  • 相关阅读:
    JavaScript 的核心机制——event loop(最易懂版)
    关于敏捷讨论的感想
    前端,如何更优雅的面对异步
    广告行业中那些趣事系列10:推荐系统中不得不说的DSSM双塔模型
    书中自有黄金屋系列7:读《博世宁医学通识讲义》
    广告行业中那些趣事系列9:一网打尽Youtube深度学习推荐系统
    书中自有黄金屋系列6:读《浪潮之巅》-下篇
    书中自有黄金屋系列6:读《浪潮之巅》-上篇
    广告行业中那些趣事系列8:详解BERT中分类器源码
    书中自有黄金屋系列5:读《正面管教》
  • 原文地址:https://www.cnblogs.com/leoych/p/13414538.html
Copyright © 2011-2022 走看看