“行高改变”的QTableView信号或事件

时间:2014-04-01 08:51:53

标签: qt qt4 pyqt

我'正在寻找像"行高改变的事件或信号"如果用户在我的QTableView中更改行的高度,则调用该函数。我想使用此信号将QTableView中的所有其他行调整到新的高度。我没有'找到这样的事件或信号所以我认为必须有某种方便的解决方法。

任何建议都将受到赞赏。

3 个答案:

答案 0 :(得分:3)

行调整大小由垂直QHeaderView执行。发出它的对象是QTableView :: verticalHeader()

您感兴趣的信号是

void QHeaderView::sectionResized ( int logicalIndex, int oldSize, int newSize )

调整节大小时会发出此信号。该部分的逻辑编号由logicalIndex指定,旧尺寸由oldSize指定,新尺寸由newSize指定。

答案 1 :(得分:1)

使用QHeaderView(您可以通过致电QTableView::horizontalHeader() / QTableView::verticalHeader()获取实例)并连接到geometriesChanged()sectionResized()

答案 2 :(得分:0)

QHeaderViewsectionResized的解决方案非常适合我。所以要调整大小 行与编辑行的高度相同我现在使用此代码:

class MyWidget(QWidget):

    def __init__(self, parent=None):

        #Do some other init things

        self.myTable.verticalHeader().sectionResized.connect(
            self.row_resized)

    def row_resized(self, index, old_size, new_size):
        for i in range(self.myTable.verticalHeader().count()):
            self.myTable.setRowHeight(i, new_size)