Qt QTableView 调整大小以适合内容

Bra*_*zov 2 c++ python qt qtableview pyside

主窗口

你好,我已经创建了主窗口,如上所示。我想尽可能地扩展第一个小部件(绘图),以便其他两个小部件适合内容(或者实际上,我想删除表格下方的空白空间)。我不知道该怎么做。

目前,两个表的垂直标题大小策略都设置为 FitToContent。

另外,它需要是动态的,因此如果我向表中添加新行,新行应该是可见的(表会更大)。

我希望我足够清楚,也希望不需要可运行的代码。

Bra*_*zov 5

好吧,我明白了。

重新实现 resizeEvent 就可以了。

    def resizeEvent(self, event):
        super(Table, self).resizeEvent(event)
        height = self.horizontalHeader().height()
        for row in range(self.model().rowCount()):
            height += self.rowHeight(row)

        if self.horizontalScrollBar().isVisible():
            height += self.horizontalScrollBar().height()
        self.setMaximumHeight(height + 2)
Run Code Online (Sandbox Code Playgroud)

我正在更改 QTableView 的高度。我包括水平标题的高度 + 所有行的高度 + Horizo​​ntalScrollBar 的高度(如果可见)。