读Pyqt4教程,带你入门Pyqt4 _007
2015-06-05 16:26
176 查看
QSlider
滑块是由一个简单的滑柄的窗口组件。该滑柄可以前后拖动,通过这种方式我们可以为特定任务选择值。有时候使用滑块比简单提供数值或使用微调框(spin box)更自然。 QLabel 显示文字或图像。
该例子中我们将显示一个滑块和一个标签。这次,标签将显示一个图像,滑块用来控制标签。
这个例子中我们模拟音量控制,通过拖动滑块的滑柄来改变标签上的图片。
创建一个水平 QSlider 。
创建一个 QLabel 窗口组件。设置一个促使的无声图形在上面。
连接 valueChanged 信号到自定义的 changeValue() 方法。
基于滑块的值,我们设置图形到标签上。在上面的代码,如果滑块的值为0,设置 mute.png 图片到标签上。
QProgressBar
进度条使用来处理长时间任务的窗口组件,当看到它的动画时,用户就知道我们的任务正在进行中。在PyQt4工具包中, QProgressBar 窗口组件提供水平或者垂直的进度条。任务被分成一些阶段。程序员可以为进度条设置最小值和最大值。默认是0,99.
这个例子中有一个水平进度表和一个按钮,按钮开始或结束进度条。
构建 QProgressBar 。
我们使用定时器对象激活进度条。
通过调用 start() 方法加载定时器事件,该方法有两个参数,超时时间( timeout )和接受事件的对象( object )。
每个 QObject 和它的继承者都有个 QObject.timerEvent 事件处理程序。为了应对定时器事件,我们重新实现了该事件处理程序。
![](http://images0.cnblogs.com/blog2015/735908/201506/040915336806112.jpg)
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669070.html
滑块是由一个简单的滑柄的窗口组件。该滑柄可以前后拖动,通过这种方式我们可以为特定任务选择值。有时候使用滑块比简单提供数值或使用微调框(spin box)更自然。 QLabel 显示文字或图像。
该例子中我们将显示一个滑块和一个标签。这次,标签将显示一个图像,滑块用来控制标签。
#!/usr/bin/python # -*- coding: utf-8 -*- # slider.py import sys from PyQt4 import QtGui from PyQt4 import QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): slider = QtGui.QSlider(QtCore.Qt.Horizontal, self) slider.setFocusPolicy(QtCore.Qt.NoFocus) slider.setGeometry(30, 40, 100, 30) self.connect(slider, QtCore.SIGNAL('valueChanged(int)'), self.changeValue) self.label = QtGui.QLabel(self) self.label.setPixmap(QtGui.QPixmap('mute.png')) self.label.setGeometry(160, 40, 80, 30) self.setWindowTitle('Slider') self.setGeometry(300, 300, 250, 150) def changeValue(self, value): if value == 0:span> self.label.setPixmap(QtGui.QPixmap('mute.png')) elif value > 0 and value <= 30: self.label.setPixmap(QtGui.QPixmap('min.png')) elif value > 30 and value < 80: self.label.setPixmap(QtGui.QPixmap('med.png')) else: self.label.setPixmap(QtGui.QPixmap('max.png')) if __name__ == '__main__': app = QtGui.QApplication(sys.argv) ex = Example() ex.show() app.exec_()
这个例子中我们模拟音量控制,通过拖动滑块的滑柄来改变标签上的图片。
slider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
创建一个水平 QSlider 。
self.label = QtGui.QLabel(self) self.label.setPixmap(QtGui.QPixmap('mute.png'))
创建一个 QLabel 窗口组件。设置一个促使的无声图形在上面。
self.connect(slider, QtCore.SIGNAL('valueChanged(int)'), self.changeValue)
连接 valueChanged 信号到自定义的 changeValue() 方法。
if value == 0: self.label.setPixmap(QtGui.QPixmap('mute.png')) ...
基于滑块的值,我们设置图形到标签上。在上面的代码,如果滑块的值为0,设置 mute.png 图片到标签上。
QProgressBar
进度条使用来处理长时间任务的窗口组件,当看到它的动画时,用户就知道我们的任务正在进行中。在PyQt4工具包中, QProgressBar 窗口组件提供水平或者垂直的进度条。任务被分成一些阶段。程序员可以为进度条设置最小值和最大值。默认是0,99.
#!/usr/bin/python # -*- coding: utf-8 -*- # progressbar.py import sys from PyQt4 import QtGui from PyQt4 import QtCore class Example(QtGui.QWidget): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): self.pbar = QtGui.QProgressBar(self) self.pbar.setGeometry(30, 40, 200, 25) self.button = QtGui.QPushButton('Start', self) self.button.setFocusPolicy(QtCore.Qt.NoFocus) self.button.move(40, 80) self.connect(self.button, QtCore.SIGNAL('clicked()'), self.doAction) self.timer = QtCore.QBasicTimer() self.step = 0 self.setWindowTitle('ProgressBar') self.setGeometry(300, 300, 250, 150) def timerEvent(self, event): if self.step >= 100: self.timer.stop() return self.step = self.step + 1 self.pbar.setValue(self.step) def doAction(self): if self.timer.isActive(): self.timer.stop() self.button.setText('Start') else: self.timer.start(100, self) self.button.setText('Stop') if __name__ == '__main__': app = QtGui.QApplication(sys.argv) ex = Example() ex.show() app.exec_()
这个例子中有一个水平进度表和一个按钮,按钮开始或结束进度条。
self.pbar = QtGui.QProgressBar(self)
构建 QProgressBar 。
self.timer = QtCore.QBasicTimer()
我们使用定时器对象激活进度条。
self.timer.start(100, self)
通过调用 start() 方法加载定时器事件,该方法有两个参数,超时时间( timeout )和接受事件的对象( object )。
def timerEvent(self, event): if self.step >= 100: self.timer.stop() return self.step = self.step + 1 self.pbar.setValue(self.step)
每个 QObject 和它的继承者都有个 QObject.timerEvent 事件处理程序。为了应对定时器事件,我们重新实现了该事件处理程序。
![](http://images0.cnblogs.com/blog2015/735908/201506/040915336806112.jpg)
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: /article/6669070.html
相关文章推荐
- Qt使用openmp并行化加速程序
- QTP远程运行无法对windos object进行操作
- QT5.4 vs2013静态加载插件的sqlite静态编译
- Qt socket。The bound address is already in use
- qt的一些技巧
- qt 窗口的缩放和滚动条的使用
- QT实现2048小游戏
- Ubuntu 下 Gtk与Qt编译环境安装与配置
- QT 串口接收数据库16进制字符串
- QT QString字符串转16进制串口发送数据
- 2015.6.5 qt学习笔记 accept()概念
- Qt 嵌入式程序 运行时遇到*** glibc detected ***等解决方法
- win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件
- Qt出现警告 Unescaped backslashes are deprecated!解决办法
- 如何实现基于MFC对话框的PCL显示(1)
- Qt编程之实现属性窗口编辑器
- VS2010+QT5编程之QString与char*的相互转换
- Qt模态对话框和非模态对话框
- Qt 笔记-1
- 初学Qt,比较基础的知识