滑块部件由一个简单的操控杆构成,用户可以通过向前或向后滑动滑块来选择数据。这种选择数据的方式对一些特殊的任务来说比单纯的提供一个数据或使用spin box调整数据大小的方式要自然友好的多。而标签部件则用来显示文本或图片。

在以下的示例中,我们将在窗口中显示一个滑块和一个标签。这次我们将在标签部件中显示图片,并使用滑块来控制其显示内容。

#!/usr/bin/python
# -*- coding: utf-8 -*- import sys
from PyQt4 import QtGui, QtCore class SliderLabel(QtGui.QWidget):
def __init__(self, parent = None):
QtGui.QWidget.__init__(self, parent)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Slider Label')
self.slider = QtGui.QSlider(QtCore.Qt.Horizontal, self)
self.slider.setFocusPolicy(QtCore.Qt.NoFocus)
self.slider.setGeometry(30, 40, 100, 30)
self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'),
self.changeValue)
self.label = QtGui.QLabel(self)
self.label.setPixmap(QtGui.QPixmap('mute.png'))
self.label.setGeometry(160, 25, 64, 64) def changeValue(self):
pos = self.slider.value()
if pos == 0:
self.label.setPixmap(QtGui.QPixmap('mute.png'))
elif pos <= 30:
self.label.setPixmap(QtGui.QPixmap('min.png'))
elif pos < 80:
self.label.setPixmap(QtGui.QPixmap('med.png'))
else:
self.label.setPixmap(QtGui.QPixmap('max.png')) app = QtGui.QApplication(sys.argv)
sl = SliderLabel()
sl.show()
sys.exit(app.exec_())

效果:

注意:QLabel的像素的大小要与图片的大小相适应,这里我用的图标的大小就是64x64的。

在这个示例中我们模拟一个音量控制的场景,通过拖动滑块来改变变迁部件中的图片显示。

self.slider = QtGui.QSlider(QtCore.Qt.Horizontal, self)

通过该语句我们创建了一个水平华东部件。

self.label = QtGui.QLabel(self)
        self.label.setPixmap(QtGui.QPixmap('mute.png'))

以上两行用来创建一个标签部件并将mute.png加入到该部件中显示。

self.connect(self.slider, QtCore.SIGNAL('valueChanged(int)'),
                        self.changeValue)

该行语句将滑块的valueChanged()信号与自定义的changeValue()方法向连接。

pos = self.slider.value()

用来获取当前滑块的位置。

PyQt4滑块QSlider、标签QLabel的更多相关文章

  1. Qt自定义带游标的slider,在滑块正上方显示当前值(非常有意思,继承QSlider之后增加一个QLabel,然后不断移动它)

    首先自定义QSlider的子类MyCustomSlider,如下所示. mycustomslider.h #ifndef MYCUSTOMSLIDER_H #define MYCUSTOMSLIDER ...

  2. 【PyQt5-Qt Designer】QSlider滑块

    QSlider滑块 QSlider简介 QSlider小部件提供了一个垂直或水平滑块. 滑块是控制有界值的经典控件.它允许用户沿水平或垂直凹槽移动滑块手柄,并将手柄的位置转换为合法范围内的整数值. Q ...

  3. Qt自定义带游标的slider,在滑块正上方显示当前值(类似于进度条,用一个额外的QLabel冒充QSilder的一部分,然后move就行了)

    首先自定义QSlider的子类MyCustomSlider,如下所示. mycustomslider.h #ifndef MYCUSTOMSLIDER_H #define MYCUSTOMSLIDER ...

  4. 七、PyQT5控件——QSlider,QSpinBox

    一.Qslider QSlider是一个滑动条,可以设置成水平或垂直放置.最常用的方法允许用户在某一范围内互动该滑块,并将滑块的位置转换成一个整数值(int类型),这种方式可以在某一个范围内平顺的变动 ...

  5. PyQT5-QSlide滑块

    """ QSlider:是一个小滑块组件,这个小滑块能够被拖着一起滑动,用于通常修改具有一定范围的数据 Author: dengyexun DateTime: 2018. ...

  6. HTML标签大全

    HTML标签解释大全 一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD). 标签:a 说明:标明超链接的起始或目的位置. 标签:acronym 说明:标 ...

  7. HTML标签解释大全

      一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD).   标签:a 说明:标明超链接的起始或目的位置.   标签:acronym 说明:标明缩写词. ...

  8. html学习笔记--标签大全

    一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD).   标签:a 说明:标明超链接的起始或目的位置.   标签:acronym 说明:标明缩写词.   ...

  9. PyQt5笔记之标签

    标签 QLabel用于显示文本或图像.没有提供用户交互功能.标签的视觉外观可以通过各种方式进行配置,并且可以用于为另一个窗口小部件指定焦点助记键. 一个QLabel可以包含以下任意内容类型: 内容 设 ...

随机推荐

  1. Linu 修改maven的setting保护文件

    查找目录 find / -name .m2 -d 查看文件: cat settings.xml 修改文件 vi settings.xml 修改后发现保存会出问题,报错W10: Warning: Cha ...

  2. list集合绑定在datagridview上时如何实现排序

    List<Person> lst = new List<Person>(); lst.Add(new Person("A", "1")) ...

  3. IPC介绍——10个ipcs例子

    IPC介绍——10个ipcs例子 semaphorearrays2010performancesystemaccess ipcs是一个uinx/linux的命令.用于报告系统的消息队列.信号量.共享内 ...

  4. iOS开发小技巧--textField成为密码框,view加载完后textField获取焦点

    文本框安全输入:Secure Text Entry(安全文本输入) view加载完后textField获取焦点的正确做法

  5. 我们要注意的Mysql基本安全设置

    1.设置或修改Mysql root密码:默认安装后空密码,以mysqladmin命令设置密码: mysqladmin -uroot password "password" Mysq ...

  6. 下载安装 Apache(Windows 64位)

    32位的Apache的下载安装:http://jingyan.baidu.com/album/2f9b480dae458f41cb6cc2ce.html?picindex=2 64位的Apache的下 ...

  7. W/MessageQueue: Handler (android.os.Handler) {4241f8f8} sending message to a Handler on a dead thread

    缩略信息是: sending message to a Handler on a dead thread 我是用IntentService时报的 稍微纤细一点儿的信息是: Handler (andro ...

  8. Windoows窗口程序六

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  9. android 编译 app

    有些编写的app需要放到android的源码中进行编译.放置的路径packages/apps/ 编译方法,参考 http://blog.csdn.net/luoshengyang/article/de ...

  10. e671. 在缓冲图像中存取像素

    // Get a pixel int rgb = bufferedImage.getRGB(x, y); // Get all the pixels int w = bufferedImage.get ...