PyQt5 QGroupBox-如何在QGroupBox的顶部外部行中显示标题?

光盘

这个例子:

# test1.py

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QHBoxLayout, QVBoxLayout, QPushButton, QRadioButton, \
    QGroupBox, QButtonGroup
from PyQt5.Qt import Qt

def main():
    app = QApplication([])
    mainForm = MainForm()
    mainForm.show()
    app.exec()
# end function

class MainForm(QWidget):

    def __init__(self):
        super().__init__()

        self.rdoRed = QRadioButton('Red')
        self.rdoGreen = QRadioButton('Green')
        self.rdoBlue = QRadioButton('Blue')

        self.vblColor = QVBoxLayout()
        self.vblColor.addWidget(self.rdoRed)
        self.vblColor.addWidget(self.rdoGreen)
        self.vblColor.addWidget(self.rdoBlue)

        self.gbColor = QGroupBox('Choose Color')

        self.gbColor.setStyleSheet('QGroupBox:title {'
                                   'subcontrol-origin: padding; }')

        self.gbColor.setLayout(self.vblColor)

        self.vboxLayout = QVBoxLayout()
        self.vboxLayout.addWidget(self.gbColor)

        self.setLayout(self.vboxLayout)
    # end function

# end class

if __name__ == '__main__':
    main()

在Ubuntu 18.04上的渲染如下:

在此处输入图片说明

我希望Choose Color当前位于QGroupBox边界线顶部上方文本与QGroupBox边界的顶部对齐,例如Qt文档所示:

在此处输入图片说明

请注意,它如何Package selection与QGroupBox的顶部边界线对齐,我想Choose Color对上面示例中标题进行相同的操作

这是操作系统限制吗?我要问的是不可能的吗?我正在使用Ubuntu 18.04。

还是setStyleSheet我可以传入一个参数来实现这一目标?正如您在上面的示例中看到的那样,我尝试设置一些样式表属性来实现此目的,但是我找不到这样的属性。还是有其他方法可以实现?

尼克

试试看:

from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QHBoxLayout, QVBoxLayout, QPushButton, QRadioButton, \
    QGroupBox, QButtonGroup
from PyQt5.Qt import *


class MainForm(QWidget):

    def __init__(self):
        super().__init__()

        self.rdoRed = QRadioButton('Red')
        self.rdoGreen = QRadioButton('Green')
        self.rdoBlue = QRadioButton('Blue')

        self.vblColor = QVBoxLayout()
        self.vblColor.addWidget(self.rdoRed)
        self.vblColor.addWidget(self.rdoGreen)
        self.vblColor.addWidget(self.rdoBlue)

        self.gbColor = QGroupBox('Choose Color')


        self.gbColor.setStyleSheet('''
            QGroupBox {
                background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1,
                                                  stop: 0 #E0E0E0, stop: 1 #FFFFFF);
                border: 2px solid #999999;
                border-radius: 5px;
                margin-top: 2ex;  /*leave space at the top for the title */
                font-size: 13px;
                color: black;
            }
            QGroupBox::title {
                subcontrol-origin: margin;
                subcontrol-position: top center;    /* position at the top center */
                padding: 0 3px;
                font-size: 13px;
                color: black;
            }
        ''')

        self.gbColor.setLayout(self.vblColor)

        self.vboxLayout = QVBoxLayout()
        self.vboxLayout.addWidget(self.gbColor)

        self.setLayout(self.vboxLayout)


def main():
    app = QApplication([])
    mainForm = MainForm()
    mainForm.show()
    app.exec()

if __name__ == '__main__':
    main()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为 PyQt5 QGroupBox 中的按钮添加功能

来自分类Dev

PyQt5进度条填满整个QGroupBox?

来自分类Dev

在 PyQt5 中修改 Qgroupbox 的边框颜色而不修改其内部小部件的边框

来自分类Dev

如何获取PyQt中QGroupbox内部存在的Qcheckbox的状态

来自分类Dev

如何获取PyQt中QGroupbox内部存在的Qcheckbox的状态

来自分类Dev

PyQt:如何在PyQt4中的QGroupBox内添加网格布局

来自分类Dev

Python中的QGroupBox

来自分类Dev

如何仅更改QGroupBox标题的字体?

来自分类Dev

以编程方式单击QGroupBox

来自分类Dev

如何安装PyQt5

来自分类Dev

如何使用HTML表达式设置QGroupBox的标题?(Python)

来自分类Dev

如何使用HTML表达式设置QGroupBox的标题?(Python)

来自分类Dev

如何在 PyQt5 中居中窗口标题?

来自分类Dev

如何在PyQt5 GUI中显示Folium地图?

来自分类Dev

如何在PyQt5 QColorDialog中显示Alpha通道

来自分类Dev

PyQt5 如何在 QLineEdit 中显示按键输入?

来自分类Dev

PyQt5表格行高度

来自分类Dev

Pyqt5 查找 QlistWidgetItem 的行

来自分类Dev

如何使用PyQt5 QtMultimedia

来自分类Dev

PyQt5如何从QProcess读取/写入

来自分类Dev

如何实时更新PyQt5标签?

来自分类Dev

PyQt5:如何更改QInputDialog OkButtonText?

来自分类Dev

如何从QML关闭Pyqt5程序?

来自分类Dev

matplotlib + PyQt5:如何传递参数?

来自分类Dev

利用PyQt5中的QtQuick控件

来自分类Dev

在PyQt5中未触发dropEvent

来自分类Dev

更新PYQT5中的图表数据

来自分类Dev

在PyQt5中串联多个QSplitter

来自分类Dev

PyQt5中的顺序编程复制