如何在 PySide2 中正确使用 CSS

Posted

技术标签:

【中文标题】如何在 PySide2 中正确使用 CSS【英文标题】:How can I properly use CSS inside PySide2 【发布时间】:2020-06-16 07:46:44 【问题描述】:

我的代码成功显示“Hello World!”,但未应用 CSS 样式。我不知道如何正确地做到这一点。如果有人对此主题有一些很好的解释,将不胜感激。

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_()

【问题讨论】:

p 更改为QLabel 【参考方案1】:

首先,有一个不同的 Qt StyleSheet 适用于所有小部件和一些小部件支持的 html

Qt StyleSheets 是一种为 QWidget 设置样式和一些属性的简单方法,它基于 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_()

【讨论】:

以上是关于如何在 PySide2 中正确使用 CSS的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PySide2 中显示图像?

如何使用 PySide2 在 matplotlib 中显示图形?

如何使用 pyside2 在 Qtableview 中显示(和格式化)日期时间数据

如何在 PySide2 中添加边框或设置透明 QLayout?

如何移动按钮 Pyside2

使用 PySide2 和 QTableView 如何使用 pandas 模型在表格视图中获得多个委托?