PyQt5基础学习-QScrollBar(滑动组件) 1.QScrollBar().value(获得滑动组件的值)

使用滑动组件来改变文本的颜色, 使用滑动组件来调整文本的位置信息

ScrollBar.py 

"""
滚动条控件(QScrollbar)

QScollBar的作用

1.通过滚动条值的变化控制其他控件状态的变化
2.通过滚动条值的变化控制控件的位置变化
"""

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class ScrollBar(QWidget):
    def __init__(self):
        super(ScrollBar, self).__init__()
        self.initUI()

    def initUI(self):
        hbox = QHBoxLayout()
        self.label = QLabel("拖到滚动条去改变文字颜色")

        hbox.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.sliderMoved1)

        #添加滚动条的组件
        hbox.addWidget(self.scrollbar1)
        hbox.addWidget(self.scrollbar2)
        hbox.addWidget(self.scrollbar3)
        hbox.addWidget(self.scrollbar4)

        self.setGeometry(300, 300, 300, 200)

        self.setLayout(hbox)

        self.y = self.label.pos().y()


    def sliderMoved(self):
        print(self.scrollbar1.value(),
              self.scrollbar2.value(),
              self.scrollbar3.value())
        pattle = QPalette() #调色板
        c = QColor(self.scrollbar1.value(),
                   self.scrollbar2.value(),
                   self.scrollbar3.value(), 255)
        #设置调色板
        pattle.setColor(QPalette.Foreground, c)
        #对label进行颜色的修改
        self.label.setPalette(pattle)

    def sliderMoved1(self):
        #将label移动到当前位置
        self.label.move(self.label.x(), self.y + self.scrollbar4.value())


if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = ScrollBar()
    main.show()

    sys.exit(app.exec_())

 

posted @ 2022-02-05 20:41  c语言我的最爱  阅读(817)  评论(0编辑  收藏  举报