【发布时间】:2015-12-20 15:13:28
【问题描述】:
考虑这个应该显示两个 GroupBox 的小型 GUI 示例。第一个放在自定义的QWidget中:
import sys
from PyQt4 import QtGui
class SomeBoxWidget(QtGui.QWidget):
def __init__(self):
super(SomeBoxWidget, self).__init__()
#create GroupBox and layout
self.group_box = QtGui.QGroupBox("group box in widget")
self.group_box_layout = QtGui.QVBoxLayout()
self.group_box.setLayout(self.group_box_layout)
#place some stuff there
self.btn = QtGui.QPushButton("button", self)
self.group_box_layout.addWidget(self.btn)
self.main_layout = QtGui.QVBoxLayout()
self.main_layout.addWidget(self.group_box)
self.setLayout(self.main_layout)
这个 QWidget 放置在第二个 QGroupBox 旁边,该 QGroupBox 直接放置在主 GUI 布局中:
class SomeGui(QtGui.QWidget):
def __init__(self):
super(SomeGui, self).__init__()
#create 2nd GroupBox and layout
self.group_box = QtGui.QGroupBox("group box in layout")
self.group_box_layout = QtGui.QVBoxLayout()
self.group_box.setLayout(self.group_box_layout)
self.btn = QtGui.QPushButton("button", self)
self.group = SomeBoxWidget()
self.group_box_layout.addWidget(self.btn)
self.main_layout = QtGui.QVBoxLayout()
self.main_layout.addWidget(self.group_box)
self.main_layout.addWidget(self.group)
self.setLayout(self.main_layout)
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = SomeGui()
app.exec_()
if __name__ == '__main__':
main()
你会注意到两个 QGroupBox 没有对齐,我假设是因为第一个放置在 QWidget 内。如何对齐它们以保持小部件内的第一个框?如果可能,不要以某种方式设置默认的固定高度/宽度值。
编辑:我假设我需要 setContensMargins 之类的东西,但对于外部区域...
【问题讨论】:
标签: python alignment pyqt4 groupbox