PyQt5 QSlider | Python
PyQt5 中的滑块用于借助可以在图形幻灯片或条形图上来回移动的指示器来设置值。很多时候,需要提供介于范围之间的值,在这种情况下,滑块非常有用。 QSlider
是用于在应用程序中添加滑块的类。
例子:
一个窗口有一个滑块和一个标签(QSlider)。移动滑块的指示器时,文本的大小会按比例放大或缩小。
from PyQt5 import QtCore, QtGui, QtWidgets
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.resize(550, 393)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.slider = QtWidgets.QSlider(self.centralwidget)
self.slider.setGeometry(QtCore.QRect(190, 100, 160, 16))
self.slider.setOrientation(QtCore.Qt.Horizontal)
# After each value change, slot "scaletext" will get invoked.
self.slider.valueChanged.connect(self.scaletext)
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(230, 150, 301, 161))
# set initial font size of label.
self.font = QtGui.QFont()
self.font.setPointSize(7)
self.label.setFont(self.font)
MainWindow.setCentralWidget(self.centralwidget)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.label.setText(_translate("MainWindow", "QSlider"))
def scaletext(self, value):
# Change font size of label. Size value could
# be anything consistent with the dimension of label.
self.font.setPointSize(7 + value//2)
self.label.setFont(self.font)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
输出: