QScrollBar的功能:
1. 通过滚动条值的变化控制控件位置的变化
2. 通过滚动条值变化控制其他控件状态的变化
方法 | 功能 |
---|---|
QScrollBar() | 创建一个滚动条对象 |
setMaximum() | 设置滚动条的最大值 |
sliderMoved() | 滚动条移动后触发,可用来绑定方法 |
value() | 获得滚动条的值 |
下面举了一个例子演示如何通过控制滚动条来改变文字颜色,大小,以及文字位置
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5 import QtGui
class ScrollBar(QWidget):
def __init__(self):
super(ScrollBar, self).__init__()
self.initUI()
def initUI(self):
hLayout = QHBoxLayout()
self.label = QLabel("改变文字颜色")
hLayout.addWidget(self.label)
self.scrollbar1 = QScrollBar()
self.scrollbar1.setMaximum(255)
self.scrollbar1.sliderMoved.connect(self.sliderMoved)
self.scrollbar2 = QScrollBar()
self.scrollbar2.setMaximum(255)
self.scrollbar2.sliderMoved.connect(self.sliderMoved)
self.scrollbar3 = QScrollBar()
self.scrollbar3.setMaximum(255)
self.scrollbar3.sliderMoved.connect(self.sliderMoved)
self.scrollbar4 = QScrollBar()
self.scrollbar4.setMaximum(255)
self.scrollbar4.sliderMoved.connect(self.labelMoved)
self.scrollbar5 = QScrollBar()
self.scrollbar5.setMaximum(20)
self.scrollbar5.sliderMoved.connect(self.sizeChanged)
hLayout.addWidget(self.scrollbar1)
hLayout.addWidget(self.scrollbar2)
hLayout.addWidget(self.scrollbar3)
hLayout.addWidget(self.scrollbar4)
hLayout.addWidget(self.scrollbar5)
self.setGeometry(300, 300, 300, 200)
self.setLayout(hLayout)
self.y = self.label.pos().y()
# 通过此函数控制颜色变化
def sliderMoved(self):
palette = QPalette()
color = QColor(self.scrollbar1.value(), self.scrollbar2.value(), self.scrollbar3.value(), 255)
palette.setColor(QPalette.Foreground, color)
self.label.setPalette(palette)
# 通过此函数改变Label位置
def labelMoved(self):
self.label.move(self.label.x(), self.y+self.scrollbar4.value())
# 通过此函数改变字体大小
def sizeChanged(self):
font = QtGui.QFont()
font.setPointSize(self.scrollbar5.value())
self.label.setFont(font)
if __name__ == "__main__":
app = QApplication(sys.argv)
main = ScrollBar()
main.show()
sys.exit(app.exec_())