033.PyQt5_QRadioButton_单选按钮

QRadioButton单选按钮

  • 描述
    • 一般用于给用户提供若干选项中的单选操作(如:男、女;是、否)
    • 当选中一个时, 会自动取消上一个
    • 此按钮左侧会有一个圆圈图标, 用于标识用户的选中状态
  • 继承自QAbstractButton
  • 功能作用
  • 创建单选按钮
    QRadioButton(parent)                # 创建的同时设置父控件
    
    QRadioButton(text, parent)          # 创建的同时设置提示文本和父控件
    
    • 同一个父控件内,只有一个单选按钮时,该按钮可以选中,也可以取消选中
    • 同一个父控件内,有多个单选按钮时,必须有一个是选中状态,选中状态时再点击无法取消选中,中能通过点击选中另一个来取消这一个的选中状态
  • 常用继承父类操作
    setIcon(QIcon)                      # 设置图标
    
    setChecked(bool)                    # 设置按钮是否选中
    toggle()                            # 设置按钮反选状态
    setCheckable(bool)                  # 设置按钮是否可以被选中(False:灰色)
    setShortcut('Alt+A')                # 设置快捷键
    setText('&ABC')                     # 设置提示文本的同时设置快捷键
    setAutoExclusive(bool)              # 设置按钮是否独占资源(排他性)
    # 单选按钮默认setAutoExclusive的值是True
    
    • 设置的图标位于圆圈和文本中间
  • 可用信号
    # 继承自QAbstractButton类
    
    pressed()                   # 鼠标按下信号
    released()                  # 鼠标释放信号(控件内松开鼠标/鼠标移出控件范围后)
    clicked(checked = False)    # 单击信号(控件内按下+控件内释放),传递按钮是否被选中状态
    toffled(bool checked)       # 选中状态切换信号(一般在单选框或者复选框中使用),传递按钮是否被选中状态
    
    # 继承自QWidget类
    windowTitleChanged(QString)           # 窗口标题改变信号,发射新的窗口名称
    windowIconChanged(QIcon)              # 窗口图标改变信号,发射图标对象
    customContextMenuRequested(QPoint)    # 自定义上下文菜单请求信号(鼠标右键按下发射信号),发射(传递)鼠标右键点击的坐标
    
    setContextMenuPolicy(Qt.CustomContextMenu)  # 设置控件自定义上下文菜单策略
    # 参数:
            Qt.CustomContextMenu  # 发射信号customContextMenuRequested(QPoint)
            Qt.DefaultContextMenu  # 默认,调用对象方法contextMenuEvent()
    
    • 常用信号为toggled(bool),选中状态切换信号,传递按钮是否被选中状态

  • 示例代码
  • 单选按钮
    from PyQt5.Qt import *
    import sys
    
    app = QApplication(sys.argv)
    window = QWidget()
    window.resize(500, 500)
    window.setWindowTitle('QRadioButton-创建与快捷键')
    
    rbtn1 = QRadioButton('男', window)
    rbtn2 = QRadioButton('女', window)
    rbtn3 = QRadioButton('是', window)
    
    rbtn1.move(100, 100)
    rbtn2.move(200, 100)
    rbtn3.move(300, 100)
    
    rbtn1.setIcon(QIcon('../images/png/home.png'))
    # 设置按钮选中
    rbtn1.setChecked(True)
    
    # 设置按钮资源独占(排他性)为False
    rbtn2.setAutoExclusive(False)
    
    # 常用信号:选择状态发生改变时候触发
    rbtn3.toggled.connect(lambda isChecked: print(isChecked))
    
    window.show()
    sys.exit(app.exec_())

你可能感兴趣的:(PyQt5,qt5,pyqt,python,qt,开发语言)