【发布时间】:2020-01-03 01:53:46
【问题描述】:
我在 pyqt5 中遇到了 QGridLayout 的一些问题。我正在尝试制作一个 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,左侧表格仍然明显更宽。我愿意学习如何解决这个问题,了解如何使左侧表格自动缩小到其中按钮的大小,或者提供替代布局建议。感谢您的帮助!
【问题讨论】:
-
您好,欢迎来到 StackOverflow!为了将来参考,请确保您提供minimal, reproducible example;幸运的是,您的代码只需要很少的调整,但即使对于愿意提供帮助的人来说,如果他们意识到他们需要调整您的代码以使其正常工作,这仍然会很烦人:我只花了一分钟,但你不能指望每个人都愿意这样做。就是说,让我明白:您是否希望左上角的表格自动调整其内容的大小,以便右上角的表格尽可能多地使用空间?
-
嗨@musicamante。我已经编辑了代码以使其更具可读性。我想:要么让左上角的表格调整自己的大小以适应内容,以便为右上角的表格提供更多空间,要么解释我如何错误地设置 QGridLayout,或者寻求另一种布局解决方案(网格在网格?网格中的垂直布局?可以这样做吗?)。我不认为我有能力在 QTDesigner 中进行布局,并且无论如何学习如何做都超出了本练习的范围。任何帮助表示赞赏!谢谢!
标签: python pyqt pyqt5 qtablewidget qgridlayout