- QSlider
- 1、QSlider创建
- 2、创建垂直QSlider
QSlider 是一个用于控制有界值的小部件。 QSlider可以是水平的或垂直的。 用户通过移动手柄来选择值。
使用 setMinimum
、setMaximum
或 setRange
指定可能值的范围,也可以显示刻度线。
通过在QSlider构造函数指定方向,创建以水平或垂直方式显示滑块控件:
sp = QSlider(Qt.Horizontal)
sp = QSlider(Qt.Vertical)
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class MainWindow(QWidget):
def __init__(self):
super().__init__()
layout = QVBoxLayout()
self.l1 = QLabel("Hello")
self.l1.setAlignment(Qt.AlignCenter)
layout.addWidget(self.l1)
self.sl = QSlider(Qt.Horizontal)
self.sl.setMinimum(10)
self.sl.setMaximum(30)
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)
self.setWindowTitle("SpinBox demo")
def valuechange(self):
size = self.sl.value()
self.l1.setFont(QFont("Arial", size))
def main():
app = QApplication(sys.argv)
ex = MainWindow()
ex.show()
sys.exit(app.exec())
if __name__ == '__main__':
main()
以下示例演示了上述功能。 一个QLabel和一个水平QSlider放置在垂直布局中。 QSlider 的 valueChanged
信号连接到 valuechange() 方法。
self.sl.valueChanged.connect(self.valuechange)
函数 valuechange()
读取滑块的当前值并将其用作标签标题的字体大小:
size = self.sl.value()
self.l1.setFont(QFont("Arial",size))
运行结果如下:
2、创建垂直QSlider下面示例将演示如何使用垂直QSlider:
from PyQt5.QtWidgets import (QWidget, QSlider, QHBoxLayout,
QLabel, QApplication)
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap
import sys
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
hbox = QHBoxLayout()
sld = QSlider(Qt.Vertical, self)
sld.setFocusPolicy(Qt.NoFocus)
sld.setRange(0, 100)
sld.setPageStep(5)
sld.valueChanged.connect(self.changeValue)
self.label = QLabel("0", self)
self.label.setStyleSheet('QLabel { background: #007AA5; border-radius: 3px;}')
self.label.setAlignment(Qt.AlignCenter | Qt.AlignVCenter)
self.label.setMinimumWidth(80)
hbox.addStretch()
hbox.addWidget(sld)
hbox.addSpacing(15)
hbox.addWidget(self.label)
hbox.addStretch()
self.setLayout(hbox)
self.setGeometry(300, 300, 350, 250)
self.setWindowTitle('QSlider')
self.show()
def changeValue(self, value):
self.label.setText(str(value))
def main():
app = QApplication(sys.argv)
ex = MainWindow()
sys.exit(app.exec())
if __name__ == '__main__':
main()
将Qt.Vertical
传递给 QSlider 构造函数,创建垂直QSlider。
sld = QSlider(Qt.Vertical, self)
运行结果如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)