参考书籍《PyQt5 快速开发与实战》王硕 孙洋洋 著


介绍

PyQt5按钮的基类是QAbstractButton,为抽象类,不能实例化。
常见的按钮类有:QPushButton、QToolButton、QRadioButton和QCheckBox.

代码示例

QPushButton的使用

# -*- coding: utf-8 -*-'''【简介】PyQt5中QButton例子
'''import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Form(QDialog):def __init__(self, parent=None):super(Form, self).__init__(parent)layout = QVBoxLayout()   #设置垂直布局self.btn1 = QPushButton("Button1")# setChenkable():设置按钮是否已经被选中,true表示按钮将被保持已点击和释放状态self.btn1.setCheckable(True)# toggle():在按钮之间进行切换self.btn1.toggle()# 通过lambda方式来传递额外的参数btn1,将clicked信号发送给槽函数whichbtn()self.btn1.clicked.connect(lambda:self.whichbtn(self.btn1) )self.btn1.clicked.connect(self.btnstate)layout.addWidget(self.btn1)self.btn2 = QPushButton('image')self.btn2.setIcon(QIcon(QPixmap("./images/python.png")))self.btn2.clicked.connect(lambda:self.whichbtn(self.btn2) )layout.addWidget(self.btn2)self.setLayout(layout) self.btn3 = QPushButton("Disabled")# setEnabled():设置按钮是否可用,false时按钮变成不可用状态,点击它不会发送信号self.btn3.setEnabled(False)layout.addWidget(self.btn3)self.btn4= QPushButton("&Download")self.btn4.setDefault(True)  #设置按钮的默认状态self.btn4.clicked.connect(lambda:self.whichbtn(self.btn4))layout.addWidget(self.btn4)self.setWindowTitle("Button demo")def btnstate(self):if self.btn1.isChecked():  #返回按钮的状态print("button pressed" ) else:print("button released" ) def whichbtn(self,btn):print("clicked button is " + btn.text() ) if __name__ == '__main__':app = QApplication(sys.argv)btnDemo = Form()btnDemo.show()sys.exit(app.exec_())

效果展示


QRadioButton的使用

# -*- coding: utf-8 -*-'''【简介】PyQt5中QRadio例子'''import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *class Radiodemo(QWidget):def __init__(self, parent=None):super(Radiodemo, self).__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_())

效果展示


QCheckBox的使用

# -*- coding: utf-8 -*-'''【简介】PyQt5中 QCheckBox 例子'''import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import Qtclass CheckBoxDemo(QWidget):def __init__(self, parent=None):super(CheckBoxDemo , self).__init__(parent)groupBox = QGroupBox("Checkboxes")      #设置盒子框groupBox.setFlat( True )layout = QHBoxLayout()  #设置水平布局self.checkBox1= QCheckBox("&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("tristateBox")self.checkBox3.setTristate(True)        #设置三态复选框self.checkBox3.setCheckState(Qt.PartiallyChecked )  #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 ):#打印复选框选中状态:0表示被选中;1表示半选中;2表示没有被选中chk1Status = self.checkBox1.text()+", isChecked="+  str( self.checkBox1.isChecked() ) + ', chekState=' + str(self.checkBox1.checkState())   +"\n"        chk2Status = self.checkBox2.text()+", isChecked="+  str( self.checkBox2.isChecked() ) + ', checkState=' + str(self.checkBox2.checkState())   +"\n"  chk3Status = self.checkBox3.text()+", isChecked="+  str( self.checkBox3.isChecked() ) + ', checkState=' + str(self.checkBox3.checkState())   +"\n"          print(chk1Status + chk2Status + chk3Status )if __name__ == '__main__':app = QApplication(sys.argv)checkboxDemo = CheckBoxDemo()checkboxDemo.show()sys.exit(app.exec_())

效果展示


参考资源

1.《PyQt5快速开发与实战》王硕,孙洋洋
2.《PyQt5快速开发与实战》源代码下载链接

PyQt5学习--基本窗口控件--QButton类控件相关推荐

  1. PyQt5学习--基本窗口控件--QMainWindow

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 QMainWindow主窗口为用户提供一个应用程序框架,它有自己的布局,可以在布局中添加控件.比如将工具栏.菜单栏和状态栏等添加到布 ...

  2. 在主窗口中增加绘图类控件时(以QPainter为例)时不显示内容的问题(不应该加addStretch)

    问题引出 假如我要实现以下GUI,包含一个主窗口,主窗口内又包含1个绘图类控件(QPainter中的QdrawText)和1个 单行文本框控件(QLineEdit). 期望效果图 开始实现的代码为: ...

  3. 驰骋工作流引擎表单设计控件-字段类控件(2)

    2019独角兽企业重金招聘Python工程师标准>>> Technorati Tags: 开源工作流引擎, 驰骋.net工作流引擎, 开源表单引擎, ccform, ccflow, ...

  4. PyQt5学习--基本窗口控件--QLabel

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件.纯文本. ...

  5. PyQt5学习--基本窗口控件--加载文件-QFileDialog

    参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QFileDialog是用来打开和保存文件的标准对话框.QFileDialog类继承自QDialog类. QFileDialo ...

  6. 【pyqt5学习】——窗口最小化至托盘、取消任务栏图标

    目录 1.最小化至托盘 1)重写系统托盘类,设置托盘图标等属性 2)将具体的窗口放入托盘 2.取消任务栏界面图标 3.问题汇总 1)退出后托盘图标还是存在,没有消失 2)最小化后左下角会出现 窗口 3 ...

  7. 基于C#的GIS开发20210426之类库同名类、制作winform控件、建立控件之间的关联、自己制作控件、自己控件引入项目、显示磁盘文件夹、磁盘文件与picturebox建立关系、图像拉伸

    C#知识点与控件的制作 一.C#中多个类库中有同名类,区分问题 二.制作最简单的winform控件 1.拖动加载 事件代理 筛选器 2.显示属性.事件,及其修改 常见控件属性介绍 窗体常用的方法 常见 ...

  8. C#--窗体控件(选择类控件)

    文章目录 下拉组合框控件 复选框控件 单选按钮控件 数值选择控件 选择类控件有下拉组合框(ComboBox)控件.复选框(CheckBox)控件.单选按钮(RadioButton)控件.数值选择(Nu ...

  9. mfc e将控件置于窗口顶层_PyQt5学习笔记04 - QWidget窗口控件基类

    本来这一篇是想写一下怎么使用Qt Designer去设计一个界面的,但是我现在通常都是用代码去直接写界面很少用设计器.因为Qt Designer并不是为了python而写的,所以用起来不是很方便.很多 ...

最新文章

  1. Apache、Nginx、Tomcat、PHP的区别
  2. Vivado中单端口和双端口RAM的区别
  3. linux下重启weblogic(关闭和启动)
  4. angular HttpClient 配置
  5. mysql字符集设置_mysql字符集设置
  6. java 判断int类型为空
  7. [ NOIP 2014 ] TG
  8. obs之libx264编码
  9. 在url中传递参数(方法二)
  10. Java证书工具keytool用法总结
  11. 批处理文件(.bat)的写法——DOS命令大全
  12. 人工智能(regex)—— 正则表达式
  13. 纳什均衡/双人纯策略
  14. 机器学习 (六): Sigmoid 公式推导和理解
  15. Too many files with unapproved license
  16. 2021-12-17 每日一练 100元怎么买100个蛋,鸡蛋1毛一个,鸭蛋3元一个,鹅蛋6元一个
  17. 招商银行证书到期后不同机器恢复导致的问题——“用户密码、证件号码和证书错误#3”
  18. 全面解析大数定律:大数定律实现超额增长!
  19. 当使用maven的clear功能导致数据库链接出现Using a password on the command line interface can be insecure.的解决方案
  20. ppt版的pdf文件,被加密,知晓密码,想得到去水印后的ppt

热门文章

  1. 如何从SQL Server中的SELECT更新?
  2. AutopilotSim2驾驶模拟器使用
  3. SpringBoot整合RabbitMQ测试代码
  4. JDBC工具类DataSourceUtils,dao接口代码示例;
  5. tp5可以请求到linux根目录么,TP5 获取项目根目录路径
  6. 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
  7. LCP 44. 开幕式焰火
  8. 后缀转中缀表达式_中缀转后缀表达式代码实现(下)及计算器完整版
  9. iphonexr电池容量_xr电池容量多少毫安,iphonexr换电池多少钱
  10. 【hyddd驱动开发学习】DDK与WDK