I am using pyside 6 with from __feature__ import snake_case, true_property
. That is why I can use the style_sheet = ...
syntax. Here is a app-wide style for QLabels:
app.style_sheet = """
QLabel {
margin: 80px;
border: 5px solid #000;
font-size: 40px;
background-color: #900;
color: #fff;
font-weight: bold;
}"""
The style is applied on all labels. And this is what it looks like:
What if you want to set the style only to the first label?
To use id selection you have to do two things:
object_name
Here is a full example:
import sys
from PySide6.QtWidgets import QWidget
from PySide6.QtWidgets import QApplication
from PySide6.QtWidgets import QMainWindow
from PySide6.QtWidgets import QStyle
from PySide6.QtWidgets import QLabel
from PySide6.QtWidgets import QSizePolicy
from PySide6.QtWidgets import QVBoxLayout
from PySide6.QtCore import Qt
from PySide6.QtCore import QSize
from __feature__ import snake_case, true_property
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
centralwidget = QWidget()
self.set_central_widget(centralwidget)
self.geometry = QStyle.aligned_rect(Qt.LeftToRight, Qt.AlignCenter, QSize(800, 600), QApplication.primary_screen.available_geometry)
label1 = QLabel("I must have left my house at eight, because I always do.")
label1.alignment = Qt.AlignCenter
label1.word_wrap = True
label1.object_name = "label1"
label2 = QLabel("I must have left my house at eight, because I always do.")
label2.alignment = Qt.AlignCenter
label2.word_wrap = True
verticalbox = QVBoxLayout()
verticalbox.add_widget(label1)
verticalbox.add_widget(label2)
centralwidget.set_layout(verticalbox)
app = QApplication(sys.argv)
app.style_sheet = """
QLabel#label1 {
margin: 80px;
border: 5px solid #000;
font-size: 40px;
background-color: #900;
color: #fff;
font-weight: bold;
}"""
mainwindow = MainWindow()
mainwindow.show()
app.exec_()
And this is what it looks like. As you see, the style is only applied to the first label: