PyQt5 QGridLayout大小不正确

问题描述 投票:0回答:1

我在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,则左侧表的宽度仍然很大。我乐于学习如何解决此问题,了解如何使左侧表格自动缩小至其中的按钮大小,或者提出其他布局建议。感谢您的帮助!

python pyqt pyqt5 qtablewidget qgridlayout
1个回答
0
投票

Ahh事实证明,在列1上使用setColumnStretch可以解决此问题。我仍然不太明白为什么无论选择多少列,两个表在QGridLayout上的宽度都不相等。

© www.soinside.com 2019 - 2024. All rights reserved.