pyqt中qss中设定的长和宽随着分辨率的改变,不发生变化
时间: 2023-11-28 13:47:49 浏览: 70
pyqt5 qss常用美化资源包
在PyQt中,可以使用QSizePolicy来设置控件的大小策略,以便在窗口大小改变时自动调整控件的大小。同时,可以在QSS中使用相对大小单位例如%和em来指定控件的大小,而不是使用固定的像素值。
以下是一个简单的示例,演示如何设置控件的大小策略并在QSS中使用相对大小单位:
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QHBoxLayout
from PyQt5.QtCore import Qt
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建标签
lbl = QLabel('Hello World!', self)
lbl.setAlignment(Qt.AlignCenter)
# 创建水平布局
hbox = QHBoxLayout()
hbox.addWidget(lbl)
self.setLayout(hbox)
# 设置标签的大小策略为"MinimumExpanding"
sizePolicy = lbl.sizePolicy()
sizePolicy.setHorizontalPolicy(QSizePolicy.MinimumExpanding)
sizePolicy.setVerticalPolicy(QSizePolicy.MinimumExpanding)
lbl.setSizePolicy(sizePolicy)
# 加载QSS样式表
with open('style.qss', 'r') as f:
self.setStyleSheet(f.read())
# 显示窗口
self.setGeometry(100, 100, 300, 200)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
```
在上面的示例中,我们创建了一个标签,并将其大小策略设置为"MinimumExpanding"以使其自动扩展。然后,我们加载了一个QSS样式表,并在其中使用了相对大小单位。在这个样式表中,我们将标签的宽度设置为父控件的80%,将高度设置为父控件的60%。这意味着无论窗口的大小如何改变,标签的大小都会自动调整以保持其相对大小不变。
阅读全文