Buy Me a Coffee? Your support is much appreciated!



demo.py

import sys
from PyQt6.QtWidgets import (QApplication, QWidget, QSlider, QLabel ,
                            QHBoxLayout, QVBoxLayout)
from PyQt6.QtCore import Qt


class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.window_width, self.window_height = 400, 300
        self.setWindowTitle('QSlider Example')
        self.setMinimumSize(self.window_width, self.window_height)
        self.setStyleSheet('''
            QWidget {
                font-size: 14px;
            }
        ''')        

        self.layout = {}
        self.layout['main'] = QVBoxLayout()
        self.setLayout(self.layout['main'])

        self.label = QLabel('Hello', alignment=Qt.AlignmentFlag.AlignCenter)
        self.layout['main'].addWidget(self.label)

        self.insert_slider_widget()

    def insert_slider_widget(self):
        self.slider = QSlider(Qt.Orientation.Horizontal)
        # self.slider.setOrientation(Qt.Orientation.Horizontal)

        self.layout['main'].addWidget(self.slider)

        # set slider range
        self.slider.setRange(1, 50)

        # initial value
        self.slider.setValue(20)

        # insert ticker
        self.slider.setTickPosition(QSlider.TickPosition.TicksBelow)
        self.slider.setTickInterval(1)

        # attach a function to the value change signal
        self.slider.valueChanged.connect(self.update_label_font_size)

        # call update_label_font_size method
        self.update_label_font_size(self.slider.value())

    def update_label_font_size(self, font_size):
        self.label.setStyleSheet('font-size: {0}px'.format(font_size))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    app.setStyleSheet('''
        QWidget {
            font-size: 14px;
        }
    ''')
    
    myApp = MyApp()
    myApp.show()

    try:
        sys.exit(app.exec())
    except SystemExit:
        print('Closing Window...')