pyqt样式表
时间: 2025-05-20 22:45:23 浏览: 21
### PyQt 样式表使用教程
PyQt 的样式表允许开发者通过类似于 CSS 的方式来定义控件的外观和风格。以下是关于如何在 PyQt 中使用样式表的一些基本概念以及示例代码。
#### 设置全局样式表
可以通过 `QApplication` 对象设置整个应用程序的样式表,这会影响所有的窗口和控件[^1]。
```python
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
app = QApplication([])
app.setStyleSheet("QLabel { font-size: 16px; color: blue; }")
```
#### 针对特定控件应用样式
除了全局样式外,还可以针对单个控件单独设置样式表。例如,可以为某个标签指定不同的字体大小和颜色[^1]。
```python
label = QLabel("Hello PyQt!")
label.setStyleSheet("font-size: 20px; color: red;")
```
#### 复杂的选择器
支持更复杂的 CSS 类型选择器语法,比如子控件选择器、伪状态等。下面的例子展示了如何根据不同状态改变按钮的颜色。
```python
button = QPushButton("Click Me")
button.setStyleSheet("""
QPushButton {
background-color: green;
color: white;
border-radius: 5px;
}
QPushButton:hover {
background-color: darkgreen;
}
QPushButton:pressed {
background-color: lightgreen;
}
""")
```
#### 组合多个规则
可以在同一个字符串里组合多种类型的规则,从而实现更加丰富的视觉效果[^1]。
```python
widget = QWidget()
layout = QVBoxLayout()
for i in range(3):
label = QLabel(f"Item {i}")
layout.addWidget(label)
widget.setLayout(layout)
widget.setStyleSheet("""
QLabel:nth-child(even) {
background-color: silver;
}
QLabel:nth-child(odd) {
background-color: gray;
}
""")
```
#### 动态更新样式
运行时也可以动态更改控件的样式属性[^1]。
```python
def change_style():
label.setStyleSheet("color: orange;")
timer = QTimer()
timer.timeout.connect(change_style)
timer.start(1000)
```
阅读全文
相关推荐


















