六、QComboBox(下拉列表框)
QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框。QComboxBox类中的常用方法如下:
addItem():添加一个下拉选项
addItems():从列表中添加下拉选项
Clear():删除下拉选项几何中的所有选项
count():返回下拉选项几何中的数目
currentText():返回选中选项的文本
itemText(i):获取索引为i的item的选项文本
currentIndex():返回选中项的索引
setItemText(int index,text):改变序号为index项的文本
QComboBox类中的常用信号:
Activated:当用户选中一个下拉选项是发射该信号
currentIndexChanged;当下拉选项的索引发生改变时发射该信号
highlighted:当选中一个已经选中的下拉选项时,发射该信号
完整演示代码:E:\testPyQt5\Chapter04\qt0411_QComboBox.py
七、QSpinBoX(计数器)
QSpinBox是一个计数器控件,允许用户选择一个整数值,通过单击向上/向下按钮或按键盘上的上/下箭头来增加/减少当前显示的值,当然用户也可以输入值。
在默认情况下,QSpinBox的取值范围为0~99,每次改变的步长值为1.
QDoubleSpinBox和QSpinBox唯一的区别就是处理数据的类型不同,其他功能都基本相同。
QSpinBox类中的常用方法如下:
setMinimum():设置计数器的下界
setMaximum():设置计数器的商界
setRange():设置计数器的最大值、最小值和步长
setValue():设置计数器的当前值
Value():返回计数器的当前值
singleStep():设置计数器的步长值
每次单击向上/向下按钮时,QSpinBox计数器都会发射valueChanged信号,可以从相应的槽函数中通过value()函数获得计数器的当前值。
完整演示代码:E:\testPyQt5\Chapter04\qt0412_QSpinBox.py
八、QSlider(滑动条)
QSlider控件提供了一个垂直或水平的滑动条。
QSlider类中的常用方法如下:
setMinimum():设置滑动条控件的最小值
setMaximum():设置滑动条控件的最大值
setSingleStep():设置滑动条控件递增/递减的步长值
setValue():设置滑动条控件的值
value():获得滑动条控件的值
setTickInterval():设置刻度间隔
setTickPositon():设置刻度标记的位置,可以输入一个枚举值,这个枚举值指定刻度线相对于滑块和用户操作的位置。以下是可以输入的枚举值:
QSlider.NoTicks,不绘制任何刻度线
QSlider.TicksBothSlides,在滑块的两侧绘制刻度线
QSlider.TicksAbove,在(水平)滑块上方绘制刻度线
QSlider.TicksBelow,在(水平)滑块下方绘制刻度线
QSlider.TicksLeft,在(垂直)滑块左侧绘制刻度线
QSlider.TicksRight,在(垂直)滑块右侧绘制刻度线
QSlider类中常用信号如下:
valueChanged:当滑块的值发生改变时发射该信号,该信号时最常用的
sliderPressed:当用户按下滑块时发射次信号
sliderMoved:当用户拖动滑块时发射此信号
sliderReleased:当用户释放滑块时发射此信号
举例:
# -*- coding: utf-8 -*- | |
''' | |
【简介】 | |
PyQt5中 QSlider 例子 | |
''' | |
import sys | |
from PyQt5.QtCore import * | |
from PyQt5.QtGui import * | |
from PyQt5.QtWidgets import * | |
class SliderDemo(QWidget): | |
def __init__(self, parent=None): | |
super(SliderDemo, self).__init__(parent) | |
self.setWindowTitle("QSlider 例子") | |
self.resize(300, 100) | |
layout = QVBoxLayout() | |
self.l1 = QLabel("Hello PyQt5") | |
self.l1.setAlignment(Qt.AlignCenter) | |
layout.addWidget(self.l1) | |
# 水平方向 | |
self.sl = QSlider(Qt.Horizontal) | |
#设置最小值 | |
self.sl.setMinimum(10) | |
#设置最大值 | |
self.sl.setMaximum(50) | |
# 步长 | |
self.sl.setSingleStep( 3 ) | |
# 设置当前值 | |
self.sl.setValue(20) | |
# 刻度位置,刻度在下方 | |
self.sl.setTickPosition(QSlider.TicksBelow) | |
# 设置刻度间隔 | |
self.sl.setTickInterval(5) | |
layout.addWidget(self.sl) | |
# 连接信号槽 | |
self.sl.valueChanged.connect(self.valuechange) | |
self.setLayout(layout) | |
def valuechange(self): | |
print('current slider value=%s' % self.sl.value() ) | |
size = self.sl.value() | |
self.l1.setFont(QFont("Arial",size)) | |
if __name__ == '__main__': | |
app = QApplication(sys.argv) | |
demo = SliderDemo() | |