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. HM visual studio编译报错

    今天,编译HM的代码,发现编译报如下错误. error MSB6003: The specified task executable "cl.exe" could not be r ...

  2. three.js入门系列之旋转的圆台、球体、正方体

    先来张图: 一.调整机位和辅助线 由上述代码可知,现在的机位是三维坐标轴上的点(2,2,2),方框的那一句很重要,有了这一句,你将获得上帝视角!!! 接下来添加辅助线(立体空间三轴): 这样就添加了一 ...

  3. SpreadJS 在 Angular2 中支持哪些事件?

    SpreadJS 纯前端表格控件是基于 HTML5 的 JavaScript 电子表格和网格功能控件,提供了完备的公式引擎.排序.过滤.输入控件.数据可视化.Excel 导入/导出等功能,适用于 .N ...

  4. Mac设置SVN:Cornerstone3

    前因 在windows下用Tortoisesvn.可惜Tortoisesvn没有Mac版,只能上知乎寻找适合于 Mac的SVN软件. 经过 找到了一款名为Cornerstone的软件.在App Sto ...

  5. HDU1496 Equations 卡时间第二题

    Consider equations having the following form: a*x1^2+b*x2^2+c*x3^2+d*x4^2=0 a, b, c, d are integers ...

  6. Codeforces 954H Path Counting 【DP计数】*

    Codeforces 954H Path Counting LINK 题目大意:给你一棵n层的树,第i层的每个节点有a[i]个儿子节点,然后问你树上的简单路径中长度在1~n*2-2之间的每个有多少条 ...

  7. 微软 Windows 系统检测网络连通性(用于显示感叹号)竟然是通过访问一个特殊网址来实现的

    一次我走到了弱网环境中,意外地发现浏览器打开了 http://www.msftconnecttest.com/redirect 网址,随后右下角的网络图标出现了一枚“感叹号”.   吹水的推断 从直观 ...

  8. 再也不用克隆多个仓库啦!git worktree 一个 git 仓库可以连接多个工作目录

    我在 feature 分支开发得多些,但总时不时被高优先级的 BUG 打断需要临时去 develop 分一个分支出来解 BUG.git 2.6 以上开始提供了 worktree 功能,可以解决这样的问 ...

  9. iOS Webview打开不受信的URL

    在我们开发过程中经常会碰到直接访问开发人员的私有地址, 这样在app 上是无法打开指定的网页的. 在iOS中需要对WKWebView 进行如下设置: 1.在工程的Plist 文件中添加一下选项 App ...

  10. LOJ#3054. 「HNOI 2019」鱼

    LOJ#3054. 「HNOI 2019」鱼 https://loj.ac/problem/3054 题意 平面上有n个点,问能组成几个六个点的鱼.(n<=1000) 分析 鱼题,劲啊. 容易想 ...