强制小部件具有与 tableview 列宽相同的宽度

时间:2021-04-26 10:34:12

标签: python pyqt5 qt5 qwidget

我正在使用 QTableView 来显示一些数据。我想在表格的第一列上垂直对齐一个小部件。这个想法是小部件宽度跟随表格中列宽的任何变化。

现在我正在使用 header 的 sectionResized 事件

self.widget = QWidget()
self.table.horizontalHeader().sectionResized.connect(self._table_resize)

...

def _table_resize(self, event=None, *args):
    self.widget.setFixedWidth(self.table.columnWidth(0))

问题是它很滞后(小部件在表格之后稍微调整大小,不合理),并且不是很精确,有时,大小不匹配(如果调整大小很快,可能会错过某些信号或不发送) ,更糟糕的是,对于一些几何变化(我还没有完全确定),根本没有发送信号,这意味着小部件和表格之间完全不匹配。

还有其他方法吗?也许对表进行子类化? 我也想过将滑块作为表格的标题(虽然对我来说不太灵活),但我还没有找到一种方法来为一列设置自定义小部件。

0 个答案:

没有答案
相关问题