PyQt5学习--基本窗口控件--QButton类控件
参考书籍《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类控件相关推荐
- PyQt5学习--基本窗口控件--QMainWindow
参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 QMainWindow主窗口为用户提供一个应用程序框架,它有自己的布局,可以在布局中添加控件.比如将工具栏.菜单栏和状态栏等添加到布 ...
- 在主窗口中增加绘图类控件时(以QPainter为例)时不显示内容的问题(不应该加addStretch)
问题引出 假如我要实现以下GUI,包含一个主窗口,主窗口内又包含1个绘图类控件(QPainter中的QdrawText)和1个 单行文本框控件(QLineEdit). 期望效果图 开始实现的代码为: ...
- 驰骋工作流引擎表单设计控件-字段类控件(2)
2019独角兽企业重金招聘Python工程师标准>>> Technorati Tags: 开源工作流引擎, 驰骋.net工作流引擎, 开源表单引擎, ccform, ccflow, ...
- PyQt5学习--基本窗口控件--QLabel
参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QLabel对象作为一个占位符可以显示不可编辑的文本或图片,也可以放置一个GIF动画,还可以被用作提示标记为其他控件.纯文本. ...
- PyQt5学习--基本窗口控件--加载文件-QFileDialog
参考书籍<PyQt5 快速开发与实战>王硕 孙洋洋 著 介绍 QFileDialog是用来打开和保存文件的标准对话框.QFileDialog类继承自QDialog类. QFileDialo ...
- 【pyqt5学习】——窗口最小化至托盘、取消任务栏图标
目录 1.最小化至托盘 1)重写系统托盘类,设置托盘图标等属性 2)将具体的窗口放入托盘 2.取消任务栏界面图标 3.问题汇总 1)退出后托盘图标还是存在,没有消失 2)最小化后左下角会出现 窗口 3 ...
- 基于C#的GIS开发20210426之类库同名类、制作winform控件、建立控件之间的关联、自己制作控件、自己控件引入项目、显示磁盘文件夹、磁盘文件与picturebox建立关系、图像拉伸
C#知识点与控件的制作 一.C#中多个类库中有同名类,区分问题 二.制作最简单的winform控件 1.拖动加载 事件代理 筛选器 2.显示属性.事件,及其修改 常见控件属性介绍 窗体常用的方法 常见 ...
- C#--窗体控件(选择类控件)
文章目录 下拉组合框控件 复选框控件 单选按钮控件 数值选择控件 选择类控件有下拉组合框(ComboBox)控件.复选框(CheckBox)控件.单选按钮(RadioButton)控件.数值选择(Nu ...
- mfc e将控件置于窗口顶层_PyQt5学习笔记04 - QWidget窗口控件基类
本来这一篇是想写一下怎么使用Qt Designer去设计一个界面的,但是我现在通常都是用代码去直接写界面很少用设计器.因为Qt Designer并不是为了python而写的,所以用起来不是很方便.很多 ...
最新文章
- Apache、Nginx、Tomcat、PHP的区别
- Vivado中单端口和双端口RAM的区别
- linux下重启weblogic(关闭和启动)
- angular HttpClient 配置
- mysql字符集设置_mysql字符集设置
- java 判断int类型为空
- [ NOIP 2014 ] TG
- obs之libx264编码
- 在url中传递参数(方法二)
- Java证书工具keytool用法总结
- 批处理文件(.bat)的写法——DOS命令大全
- 人工智能(regex)—— 正则表达式
- 纳什均衡/双人纯策略
- 机器学习 (六): Sigmoid 公式推导和理解
- Too many files with unapproved license
- 2021-12-17 每日一练 100元怎么买100个蛋,鸡蛋1毛一个,鸭蛋3元一个,鹅蛋6元一个
- 招商银行证书到期后不同机器恢复导致的问题——“用户密码、证件号码和证书错误#3”
- 全面解析大数定律:大数定律实现超额增长!
- 当使用maven的clear功能导致数据库链接出现Using a password on the command line interface can be insecure.的解决方案
- ppt版的pdf文件,被加密,知晓密码,想得到去水印后的ppt
热门文章
- 如何从SQL Server中的SELECT更新?
- AutopilotSim2驾驶模拟器使用
- SpringBoot整合RabbitMQ测试代码
- JDBC工具类DataSourceUtils,dao接口代码示例;
- tp5可以请求到linux根目录么,TP5 获取项目根目录路径
- 深度学习声纹识别_kaldi/语音识别ASR/声纹识别SRE/资源汇总
- LCP 44. 开幕式焰火
- 后缀转中缀表达式_中缀转后缀表达式代码实现(下)及计算器完整版
- iphonexr电池容量_xr电池容量多少毫安,iphonexr换电池多少钱
- 【hyddd驱动开发学习】DDK与WDK