下面是一段创建简单QGroupBox的代码:
from PyQt5.QtWidgets import (QApplication, QWidget,
QGroupBox, QGridLayout)
class QGroupBoxTest(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
gb = QGroupBox()
gb.setTitle('QGroupBox title')
appLayout = QGridLayout()
appLayout.addWidget(gb, 0, 0)
self.setLayout(appLayout)
self.setWindowTitle('QGroupBox test window')
self.setGeometry(300, 300, 300, 200)
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
test = QGroupBoxTest()
test.show()
sys.exit(app.exec_())
在我看来,输出是这样的:
现在假设我想给它添加一些样式,我通过在initUI方法中添加以下行来实现:
^{pr2}$输出如下:
从图片中可以清楚地看到,标题已经在框架内结束,现在与框架边界重叠。在
所以我有三个问题:
1)这可能是默认的QT布局,在第一张图片中使用平台样式,它负责边框和标题的位置,当您更改样式表时,您会覆盖某些内容并得到难看的位置。在
2)您可以使用
QGroupBox:title
控件控制“title”位置,例如:会导致这样的结果:
3)我的建议是为要更改的样式表属性创建不同的字符串,然后组合它们以创建所需的样式。尽管这个问题已经得到了回答,但我还是会把我对PyQt中的小部件应用样式表的技术的理解贴出来,这部分回答了我最初的问题。我希望有人会发现它有用。在
我认为最好将样式保存在单独的css(qss)文件中:
python代码如下所示:
^{pr2}$产生以下输出:
相关问题 更多 >
编程相关推荐