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. Alpha冲刺一 (2/10)

    前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/9960487.html 作业博客:https://edu.cnblogs.com/campus/ ...

  2. Ubuntu与ROS的Docker桌面系统与ROS在线练习课程(在线Linux虚拟机)

    ROS在线练习课程正在逐步完善中,目前以ROS官网中文资料制作,可参考: https://www.shiyanlou.com/courses/854  邀请码 U23ERF8H 安装Ubuntu+RO ...

  3. Android内存优化(四)解析Memory Monitor、Allocation Tracker和Heap Dump

    相关文章 Android性能优化系列 Java虚拟机系列 前言 要想做好内存优化工作,就要掌握两大部分的知识,一部分是知道并理解内存优化相关的原理,另一部分就是善于运用内存分析的工具.本篇就来介绍内存 ...

  4. 上传IOS项目和版本更新流程图

    上传IOS项目和版本更新流程图 必备IDP证书和distribution证书(第一个证书是真机部署测试时用到的,后者证书是发布时需要用到的,缺一不可). 我就说说接下来应该做的流程.在你保证拥有以上两 ...

  5. Java并发--synchronized

    以下是本文的目录大纲: 一.什么时候会出现线程安全问题? 二.如何解决线程安全问题? 三.synchronized同步方法或者同步块 转载原文链接:http://www.cnblogs.com/dol ...

  6. LOJ2613 NOIP2013 华容道 【最短路】*

    LOJ2613 NOIP2013 华容道 LINK 这是个好题,具体题意比较麻烦可以直接看LINK中的链接 然后考虑我们可能的移动方式 首先我们需要把白块移动到需要移动块S的附近(附近四格) 然后我们 ...

  7. WPF 程序无法触摸操作?我们一起来找原因和解决方法!

    WPF 自诞生以来就带着微软先生的傲慢.微软说 WPF 支持触摸,于是 WPF 就真的支持触摸了.对,我说的是"支持触摸",那种摸上去能点能动的:偶尔还能带点儿多指的炫酷效果.但是 ...

  8. 《DSP using MATLAB》示例Example 8.15

  9. 算法导论进度帖startedby20131029

    2013.10.29 今天开始啃难啃的算法导论,俗一点说,光阴似箭,剩下的时间已经不多了,所以开始好好奋进吧~ 第一章翻过去了,对附录中的数学基础再补看一遍,发现很多东西其实掌握的都很薄弱的,附录A的 ...

  10. 【java基础】java集合之TreeMap

    转载文章转载请注明出处:http://www.cnblogs.com/skywang12345/admin/EditPosts.aspx?postid=3310928 第1部分 TreeMap介绍 T ...