【问题标题】:Adding a widget into QGroupBox将小部件添加到 QGroupBox
【发布时间】:2017-07-11 20:49:06
【问题描述】:

我正在尝试将 QPushButton 小部件添加到 QGroupBox 中,例如:

self.btn = QtGui.QPushButton('Push Button')
self.grp_box = QtGui.QGroupBox('Button Section')
self.grp_box.addWidget(self.btn)

在尝试运行代码时,出现此错误:AttributeError: 'NoneType' object has no attribute 'addWidget'

网上查了一下,好像QGroupBox只允许setLayout,也就是说我需要用QVBoxLayout或者QHBoxLayout等等。

有没有办法解决这个问题,在不使用任何布局的情况下添加一个小部件?我正在使用 PyQt。

【问题讨论】:

  • 没有。你为什么要这样做?
  • 用于分类并使用户界面漂亮?
  • 您为什么想要使用布局?
  • 我不确定这是否可以在不使用布局的情况下完成。另外,假设我只有一个按钮,我没有看到需要将此按钮添加到布局然后添加到 groupBox 的点(这只是我说的......)因此我问
  • 使按钮成为组框的子项。然后它应该默认出现在组框的左上角 - 但可能会掩盖它的标题。那么你需要给按钮一个绝对位置(例如button.move(20, 20))。但是,如果 group-box 改变大小,它也可能使按钮变得模糊,所以你需要为 group-box 设置一个最小尺寸等等。当然,布局的重点是避免不得不处理与所有这些繁琐的细节,并允许 Qt 自动管理它。

标签: pyqt widget qgroupbox


【解决方案1】:

首先创建你的主布局 = QHBoxLayout()

  main_layout = QHBoxLayout()

然后创建分组框:

  group_box = QGroupBox("Group Box")

创建组框布局:

  group_box_layout = QVBoxLayout()

像这样将小部件添加到组框布局中:

  group_box_layout.addWidget(QCheckBox("Check Box 1"))
  group_box_layout.addWidget(QCheckBox("Check Box 2"))
  group_box_layout.addWidget(QCheckBox("Check Box 3"))

将组框布局分配给组框:

  group_box.setLayout(group_box_layout)

将组框分配给主布局:

  main_layout.addWidget(group_box)

并在末尾添加:

    widget = QWidget()
    widget.setLayout(layout1)
    self.setCentralWidget(widget)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-05
    • 2013-05-23
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 2019-03-08
    相关资源
    最近更新 更多