我在pyqt5中使用QGridLayout遇到了一些问题。我正在尝试制作一个GUI,该GUI的一侧有一堆按钮,另一侧有一张表,并且占据了窗口的整个底部。这是我做过的第一个程序,所以我遇到的问题可能比我知道的要多。
我已经将按钮安排在QTableWidget中,并且主QTableWidget包含多个字段,用户可以在其中输入数据。我希望数据输入表的大小大于按钮表的大小,但按this的答案调整它的大小似乎没有任何作用。无论我输入的columnSpan条目为何,按钮表都较大。我在做什么错?
以下是相关的代码位:
class MainWindow(QMainWindow):
def __init__(self, *args, **kwargs):
super(MainWindow, self).__init__(*args, **kwargs)
self.setGeometry(50, 50, 700, 1000)
self.home()
def home(self):
self.central_widget = QWidget()
self.setCentralWidget(self.central_widget)
self.button_table = QTableWidget(self)
self.layer_add = QPushButton("Add layer", self)
self.plotter = QPushButton("plot transmission", self)
self.layer_table = QTableWidget(self)
self.graphWidget = pg.PlotWidget(self)
self.grid = QGridLayout()
self.grid.setSpacing(10)
self.grid.addWidget(self.button_table, 0, 0, 1, 1)
self.grid.addWidget(self.layer_table, 0, 1, 1, 3)
self.grid.addWidget(self.graphWidget, 1, 0, 1, 4)
self.centralWidget().setLayout(self.grid)
self.show()
我涂鸦了我理想中想要发生的事情……这是上面代码显示的图片
并用红色表示我想发生的事情。
编辑:我不明白为什么,如果我将QGridLayout columnSpan的左侧表设置为1,将右侧表设置为3,则左侧表的宽度仍然很大。我乐于学习如何解决此问题,了解如何使左侧表格自动缩小至其中的按钮大小,或者提出其他布局建议。感谢您的帮助!
Ahh事实证明,在列1上使用setColumnStretch可以解决此问题。我仍然不太明白为什么无论选择多少列,两个表在QGridLayout上的宽度都不相等。