Я обнаружил свойство flat класса QGroupbox в Qt-docs , где написано:
Групповое поле обычно состоит из окружающего фрейма с заголовком ввершина.Если это свойство включено, в большинстве стилей отрисовывается только верхняя часть кадра;в противном случае рисуется весь кадр.
Я пытаюсь построить такой плоский QGroupBox, но, похоже, он не работает, как вы можете видеть на этой картинке ,В документах также говорится:
Примечание: В некоторых стилях плоские и неплоские групповые блоки имеют похожие представления и могут быть не такими различимыми, как в других стилях.
Это приводит меня к классу QStyle , который немного меня перенапрягает, так как я понятия не имею, как изменить стиль QGroupBox.Я даже не уверен, если это реальная проблема здесь.Как вы можете видеть в моем коде ниже, я не назначаю определенный стиль для QGroupBox.Итак, он должен использовать какой-то стандартный стиль, я думаю ...
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QGroupBox,
QVBoxLayout, QLabel
class WidgetWithFlatGroupBox(QWidget):
def __init__(self):
QWidget.__init__(self, flags=Qt.Widget)
self.init_ui()
def init_ui(self):
self.setGeometry(300, 300, 300, 100)
self.setWindowTitle('PyQt5 Window')
layout = QVBoxLayout()
layout.addWidget(self.create_groupbox(), alignment=Qt.AlignCenter)
self.setLayout(layout)
def create_groupbox(self):
groupbox = QGroupBox('Flat Groupbox')
layout = QVBoxLayout()
label = QLabel('This Groupbox should be flat.')
layout.addWidget(label, alignment=Qt.AlignCenter)
groupbox.setLayout(layout)
groupbox.setFlat(True)
return groupbox
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = WidgetWithFlatGroupBox()
ex.show()
sys.exit(app.exec_())
Я просматривал Интернет, конечно же, здесь и на stackoverflow, но не смог найти что-то полезное.Кто-нибудь знает, как правильно использовать свойство flat класса QGroupBox?