gpt4 book ai didi

python - 如何在 PyQt5 中自定义 QGroupBox 标题?

转载 作者:太空宇宙 更新时间:2023-11-03 14:58:59 38 4
gpt4 key购买 nike

下面是一段创建简单 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_())

这就是输出对我来说的样子:

qgb-1.jpg

现在假设我想给它添加一些样式,我通过将这一行添加到 initUI 方法来实现:

gb.setStyleSheet("border: 1px solid gray; border-radius: 5px")

这是输出:

qgb-1.jpg

从图片中可以清楚地看到,标题已经在框架内,现在与框架边界重叠。

所以我实际上有三个问题:

  1. 为什么标题移动了?
  2. 如何移动它并将其放置在我想要的位置(如果可能)?
  3. 如果我只是想在不指定 border-style 属性的情况下将边框 Angular 四舍五入怎么办?比方说,我希望边框样式与第一张图片保持相同,但带有圆 Angular 。我该怎么做?

最佳答案

1) 可能这是默认的 QT 放置,在第一张图片中使用了平台样式,它负责边框和标题放置,当您更改样式表时,您会覆盖一些东西,然后您会得到丑陋的位置。

2)可以使用QGroupBox:title控件来控制“title”的位置,例如:

gb.setStyleSheet('QGroupBox:title {'
'subcontrol-origin: margin;'
'subcontrol-position: top center;'
'padding-left: 10px;'
'padding-right: 10px; }')

会产生这样的结果:

title

3)我的建议是为您要更改的样式表属性创建不同的字符串,然后组合它们以创建您想要的样式。

关于python - 如何在 PyQt5 中自定义 QGroupBox 标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40043709/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com