PyQt 5控件包括:按钮、复选框、滑动条、列表框等

复选框QCheckBox

QCheckBox复选框控件,它有两个状态:打开和关闭,他是一个带有文本标签(Label)的控件。复选框常用于表示程序中可以启用或者禁用的功能。

cb = QCheckBox('show title',self)

# 创建一个复选框,标题命名为show title

cb.toggle()

# 切换复选框状态,复选框默认没有勾选,并且没有标题

 # Author:凌逆战
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QWidget, QCheckBox, QApplication
from PyQt5.QtCore import Qt class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
cb = QCheckBox('Show title', self) # 复选框自带的文本lable
cb.move(20, 20)
cb.toggle() # 切换状态# 勾选复选框
# 复选框stateChanged状态改变信号绑定self.changeTitle槽
cb.stateChanged.connect(self.changeTitle) self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('QCheckBox')
self.show() def changeTitle(self, state):
if state == Qt.Checked:
self.setWindowTitle('QCheckBox')
else:
self.setWindowTitle('') if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

复选框

开关按钮Toggle button

ToggleButton是QPushButton的一种特殊模式

 # Author:凌逆战
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QPushButton,QFrame, QApplication)
from PyQt5.QtGui import QColor class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.col = QColor(0, 0, 0) # 初始黑颜色的值 redb = QPushButton('Red', self) # 创建一个红色按钮
redb.setCheckable(True) # 按钮设置成可检查的
redb.move(10, 10)
# 红色按钮点击信号和self.setColor槽连接在一起
redb.clicked[bool].connect(self.setColor) greenb = QPushButton('Green', self) # 创建一个绿色按钮greenb
greenb.setCheckable(True) # 按钮设置成可以检查的
greenb.move(10, 60)
greenb.clicked[bool].connect(self.setColor) blueb = QPushButton('Blue', self)
blueb.setCheckable(True) # 通过setCheckable()方法得到一个ToggleButton
blueb.move(10, 110)
blueb.clicked[bool].connect(self.setColor) self.square = QFrame(self)
self.square.setGeometry(150, 20, 100, 100)
self.square.setStyleSheet("QWidget { background-color: %s }" %
self.col.name()) self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('Toggle button')
self.show() def setColor(self, pressed): source = self.sender() # 发送信号的人 if pressed:
val = 255
else:
val = 0 if source.text() == "Red":
self.col.setRed(val)
elif source.text() == "Green":
self.col.setGreen(val)
else:
self.col.setBlue(val) self.square.setStyleSheet("QFrame { background-color: %s }" %
self.col.name()) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

开关按钮

滑动条QSlider

sld = QSlider(QT.Horizontal,self)

# 创建一个水平滑块

 # Author:凌逆战
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QSlider,QLabel, QApplication)
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
sld = QSlider(Qt.Horizontal, self) # 水平的滑动条
sld.setFocusPolicy(Qt.NoFocus) # 设置焦点策略
sld.setGeometry(30, 40, 100, 30)
sld.valueChanged[int].connect(self.changeValue) # int传参 self.label = QLabel(self) # 创建一个QLable控件,并设置一个初始音量图标
self.label.setPixmap(QPixmap('audio.ico'))
self.label.setGeometry(160, 40, 80, 30) self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('QSlider')
self.show() def changeValue(self, value): # value形参 if value == 0:
self.label.setPixmap(QPixmap('audio.ico')) # 设置像素映射
elif value > 0 and value <= 30:
self.label.setPixmap(QPixmap('min.ico'))
elif value > 30 and value < 80:
self.label.setPixmap(QPixmap('med.ico'))
else:
self.label.setPixmap(QPixmap('max.ico')) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

滑动条

进度条QProgressBar

self.pbar = QProgressBar(self)

# 创建进度条实例

 # Author:凌逆战
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QProgressBar,QPushButton, QApplication)
from PyQt5.QtCore import QBasicTimer class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
self.pbar = QProgressBar(self) # 创建一个进度条QProgressBar实例
self.pbar.setGeometry(30, 40, 200, 25) self.btn = QPushButton('Start', self) # 创建一个Start按钮实例
self.btn.move(40, 80)
self.btn.clicked.connect(self.doAction) self.timer = QBasicTimer() # 创建一个定时器实例,用来激活QProgressBar
self.step = 0 self.setGeometry(300, 300, 280, 170)
self.setWindowTitle('进度条')
self.show()
# 每一个QObject及其子类都有一个timeEvent()事件处理器,
# 重写timeEvrnt,实现这个事件处理器来响应定时器事件
def timerEvent(self, e): if self.step >= 100:
self.timer.stop()
self.btn.setText('完成')
return self.step = self.step + 1
self.pbar.setValue(self.step) # 把step的值设置为进度条的值 def doAction(self): if self.timer.isActive():
self.timer.stop()
self.btn.setText('Start')
else:
# 调用start()方法来启动一个计时器
# 第一个参数:超时;第二个参数:对象将接受的事件
self.timer.start(100, self)
self.btn.setText('Stop') if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

进度条

日历控件QCalendarWidget

cal = QCalendarWidget(self)

# 创建日历控件

cal.clicked[QDate].connect(self.showDate)

# 点击[QDate]发出信号,将信号clicked和self.showDate槽绑定

 # Author:凌逆战
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import (QWidget, QCalendarWidget,QLabel, QApplication)
from PyQt5.QtCore import QDate class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI() def initUI(self):
cal = QCalendarWidget(self) # 创建一个日历控件QCalendarWidget
cal.setGridVisible(True) # 设置网格可视化
cal.move(20, 20)
cal.clicked[QDate].connect(self.showDate) self.lbl = QLabel(self)
date = cal.selectedDate()
self.lbl.setText(date.toString()) # 将data转换成字符串
self.lbl.move(130, 260) self.setGeometry(300, 300, 350, 300)
self.setWindowTitle('Calendar')
self.show() def showDate(self, date):
self.lbl.setText(date.toString()) if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())

日历控件

PyQt 5控件的更多相关文章

  1. Python——PYQT:控件基本使用

    QtGui.QComboBox控件常用函数: .addItem(string) #添加字符串项到Item .addItems(list) #添加列表或元组元素到Item .clear() #清除所有I ...

  2. Pyqt 动态的添加控件

    Pyqt 动态的添加控件 # -*- coding: utf-8 -*- from PyQt4.QtCore import * from PyQt4.QtGui import * import sys ...

  3. [ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件对话框

    本文主要介绍PyQt界面实现中常用的消息弹出对话框.提供用户输入的输入框.打开文件获取文件/目录路径的文件对话框.学习这三种控件前,先想一下它们使用的主要场景: 1.消息弹出对话框.程序遇到问题需要退 ...

  4. PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性不起作用的问题解决办法

    在<PyQt(Python+Qt)学习随笔:布局控件layout的layoutSizeConstraint属性>中介绍layout的layoutSizeConstraint属性后,反复测试 ...

  5. Pyqt 控件的信号槽事件定义方法

    转载来自:http://my.oschina.net/midnite/blog/39399 Qt采用信号槽来设定UI界面上元素动作的事件绑定.自Qt4.5开始,引入了一个新的信号槽与事件绑定的方法.界 ...

  6. GUI学习之二——PyQt控件初识

    一.控件概念 控件是一个程序界面上的各个独立的元素, 它具备用户点击.接收用户输入.展示不同内容.存放其他控件等功能. 二.控件分类 常用的控件按功能可以分为以下几种类 按钮 QPushButton— ...

  7. python2.7+pyqt+eric基本控件操作

    一.单选按钮被选中 1.选择 Radio Button 2.加入如下代码: #单选按钮状态切换时触发onstateChanged函数 self.radioButton.toggled.connect( ...

  8. [ PyQt入门教程 ] PyQt5基本控件使用:单选按钮、复选框、下拉框

    本文主要介绍PyQt5界面最基本使用的单选按钮.复选框.下拉框三种控件的使用方法进行介绍. 1.RadioButton单选按钮/CheckBox复选框.需要知道如何判断单选按钮是否被选中. 2.Com ...

  9. [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法

    如果你想让你开发的PyQt5工具展示的数据显得整齐.美观.好看,显得符合你的气质,可以考虑使用QTableWidget控件.之前一直使用的是textBrowser文本框控件,数据展示还是不太美观.其中 ...

随机推荐

  1. SpringMVC札集(09)——拦截器

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  2. SpringMVC札集(07)——JSON数据

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  3. Python的安装与设置

    1.Python的下载与安装最新的python 版本下载可以去python的网站进行下载 . 考虑系统兼任这里下载32位的Python 双击下载的exe文件进行安装 单击Next 完成Python 安 ...

  4. 使用TR1的智能指针

    作为C++程序员,在没有智能指针,手动管理内存的蛮荒岁月里,可以说是暗无天日,痛苦异常.直到上帝说,还是要有光,于是智能指针进了标准.C++码农的日子总算好起来了. 虽然一直鄙视着没有显式指针的语言, ...

  5. webpy/flask/bottle性能测试

    这三个都是Python WSGI的web开发框架,到底用哪个呢?单纯从性能的角度而言,可能哪个快就用哪个,但是这也不是绝对的.比如我就比较喜欢webpy的router配置放在一个文件中,而flask和 ...

  6. 程序设计入门-C语言基础知识-翁恺-第三周:循环-详细笔记(三)

    目录 第三周:循环 3.1 循环 3.2 循环计算 3.3 课后习题 3.4 讨论题(不需要掌握) 第三周:循环 3.1 循环 while循环 语法: while(条件表达式){ //循环体语句 } ...

  7. C# 后台模拟前台post发送json数据

    public static string PostMoths(string url, string param) { string strURL = url; System.Net.HttpWebRe ...

  8. sql中的一些函数(长期更新。。)

    前言 在最近看别人的sql的时候,看到一些函数,比如left(),right()等等,好奇是什么意思,查询之后觉得还是挺有用的,特此记录下来.博客会在遇到新的函数的时候定期更新. 正文 1. left ...

  9. Django mysql 字符集问题

    http://www.cnblogs.com/discuss/articles/1862248.html http://www.cnblogs.com/moinmoin/archive/2011/02 ...

  10. 常用ES6语法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...