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

    QCheckBox类继承自QAbstractButton类。

    QCheckBox(复选框)和 QRadioButton(单选钮)都是选项按钮,因为他们都可以在开(选中)挥着关(未选中)之间切换。他们的区别是对用户选择的限制;单选钮提供了“多选一”的选择;而复选框提供的是“多选多”的选择。

    QCheckBox类中的常用方法:

      setChecked()    设置复选框的状态,设置为True时表示选中复选框,设置为False时表示取消选中复选框

      setText()      设置复选框的显示文本

      text()         返回复选框的显示文本

      isChecked()     检查复选框是否被选中

      setTriState()    设置复选框为一个三态复选框

    三态复选框有三种状态

      Qt.Checked      2    组件没有被选中(默认值)

      Qt.PartiallyChecked   1    组件被半选中

      Qt.Unchecked       0    组件被选中

    案例16  QCheckBox按钮的使用

    import sys
    from PyQt5.QtCore import Qt
    from PyQt5.QtGui import *
    from PyQt5.QtWidgets import QWidget, QApplication, QCheckBox, QGroupBox, QHBoxLayout, QVBoxLayout
    
    
    class CheckBoxDemo(QWidget):
        def __init__(self, parent=None):
            super().__init__(parent)
    
            groupbox = QGroupBox("Checkboxes")
            groupbox.setFlat(True)
    
            layout = QHBoxLayout()
            self.checkbox1 = QCheckBox("&Checkbox1")  # 为checkBox1设置快捷键,通过“Alt+C”可以选择checkbox1复选框
            self.checkbox1.setChecked(True)
            self.checkbox1.stateChanged.connect(lambda: self.btnstate(self.checkbox1))
            layout.addWidget(self.checkbox1)
    
            self.checkbox2 = QCheckBox("Checkbox2")
            self.checkbox2.toggled.connect(lambda: self.btnstate(self.checkbox2))
            layout.addWidget(self.checkbox2)
    
            self.checkbox3 = QCheckBox("Checkbox3")
            self.checkbox3.setTristate(True)  # 开启三态模式
            self.checkbox3.setCheckState(Qt.PartiallyChecked)
            self.checkbox3.stateChanged.connect(lambda: self.btnstate(self.checkbox3))
            layout.addWidget(self.checkbox3)
    
            groupbox.setLayout(layout)
            mainlayout = QVBoxLayout()
            mainlayout.addWidget(groupbox)
    
            self.setLayout(mainlayout)
            self.setWindowTitle("CheckBox Demo")
    
        def btnstate(self, btn):
            chk1status = (self.checkbox1.text() + ", is Checked = " + str(self.checkbox1.isChecked()) + ", is checkState = "
                          + str(self.checkbox1.checkState()) + "
    ")
            chk2status = (self.checkbox2.text() + ", is Checked = " + str(self.checkbox2.isChecked()) + ", is checkState = "
                          + str(self.checkbox2.checkState()) + "
    ")
            chk3status = (self.checkbox3.text() + ", is Checked = " + str(self.checkbox3.isChecked()) + ", is checkState = "
                          + str(self.checkbox3.checkState()) + "
    ")
        print(chk1status + chk2status + chk3status)
    if __name__ == "__main__": app = QApplication(sys.argv) checkboxdemo = CheckBoxDemo() checkboxdemo.show() sys.exit(app.exec_())
  • 相关阅读:
    【flutter学习】基础知识(一)
    【软件测试学习】 敏捷开发(二)
    【软件测试学习】 软件测试初步认识(一)
    【hugo】- hugo 监听浏览器切换title
    【hugo】- hugo 博客 添加鼠标单击特效
    春风十里
    一眼就能看懂的C#委托、多播委托和事件的区别与联系。
    js控制的DataGrid的URL参数不能动态刷新表格的问题
    [报错解决].net web api测试页面ajax 报错400 的问题
    [MVC]使用jquery.form.js 异步上传文件
  • 原文地址:https://www.cnblogs.com/lynsha/p/13408733.html
Copyright © 2011-2022 走看看