Как правильно использовать CSS внутри PySide2 - PullRequest
1 голос
/ 16 июня 2020

Мой код успешно отображает «Hello World!», Однако стиль CSS не применяется. Я не знаю, как это сделать правильно. Если у кого-то есть хорошие объяснения по этому топи c, он был бы очень признателен.

The output of my code

from PySide2.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])

window = QWidget()
window.setStyleSheet('''
    p {
        font-size: 100px;
    }
''')

label = QLabel('<p>Hello World!</p>', parent=window)

window.show()
app.exec_()

1 Ответ

1 голос
/ 16 июня 2020

Прежде всего, существует другая таблица стилей Qt, которая применяется ко всем виджетам, и html, поддерживаемый некоторыми виджетами.

Таблицы стилей Qt - это простой способ установить стиль и некоторые свойства для QWidgets, основанные на CSS 2.1, но адаптированные к Qt.

Вместо этого некоторые виджеты поддерживают форматированный текст, например html, и это случай QLabel, в этом случае стиль должен быть встроен

Учитывая, что есть несколько решений:

from PySide2.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])

label = QLabel('<p style="font-size: 100px">Hello World!</p>', parent=window)

window.show()
app.exec_()
from PySide2.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])

window = QWidget()
window.setStyleSheet('''
    QLabel {
        font-size: 100px;
    }
''')

label = QLabel('<p>Hello World!</p>', parent=window)

window.show()
app.exec_()
from PySide2.QtWidgets import QApplication, QLabel, QWidget

app = QApplication([])

window = QWidget()

label = QLabel('<p style="font-size: 100px">Hello World!</p>', parent=window)
font = label.font()
font.setPointSize(100)
label.setFont(font)

window.show()
app.exec_()
...