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. L165

    New evidence of how the Norse became long-distance marinersAccording to the saga of Erik the Red, “s ...

  2. git clone 提示输入git@xxx的密码

    如下: suse:~/ecox # git clone git@vcs.in.ww-it.cn:ecox/ecox.git 正克隆到 'ecox'... git@vcs.in.ww-it.cn's p ...

  3. EasyRTMP+EasyRTSPClient实现的多路(支持断线重连)RTSP转RTMP直播推流工具

    本文转自EasyDarwin开源团队成员Kim的博客:http://blog.csdn.net/jinlong0603/article/details/73441405 介绍 EasyRTMP是Eas ...

  4. 369C Valera and Elections

    http://codeforces.com/problemset/problem/369/C 树的遍历,dfs搜一下,从根节点搜到每个分叉末尾,记录一下路况,如果有需要修复的,就把分叉末尾的节点加入答 ...

  5. jQuery AJAX 与 jQuery 事件

    jQuery 本身即是为事件处理而特别设计的,jQuery 事件处理方法是 jQuery 中的核心函数. $(function() { ... }); 是如下格式的缩写: $(document).re ...

  6. 获取SQL Server数据库表的列名

    SELECT syscolumns.name,systypes.name,syscolumns.isnullable,syscolumns.length FROM syscolumns, systyp ...

  7. python之csv操作问题

    注意注意 写入csv文件 一定要注意 [ ] fileObj = open("fileName","w+") file = csv.writer(fileObj ...

  8. 因为yii2中jquery位置默认在最下方,可将自定义js位置放在下方

    因为yii2中jquery位置默认在最下方,可将自定义js位置放在下方,这样就可以执行当页面加载完触发动作.记录下方式,查找方便 <?php $this->beginBlock('test ...

  9. BZOJ1345 Baltic2007 序列问题Sequence 【思维题】*

    BZOJ1345 Baltic2007 序列问题Sequence Description 对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用 ...

  10. 获取web.config 内的值

    获取 System.Configuration.ConfigurationManager.AppSettings[DrugPackageRegistrationName]//获取web.config ...