【问题标题】:QTableView signal or event for "row height changed"“行高改变”的 QTableView 信号或事件
【发布时间】:2014-04-01 08:51:52
【问题描述】:

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

任何建议将不胜感激。

【问题讨论】:

    标签: qt qt4 pyqt


    【解决方案1】:

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

    你感兴趣的信号是

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        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)
        

        【讨论】:

          猜你喜欢
          • 2023-03-28
          • 1970-01-01
          • 1970-01-01
          • 2012-01-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-12
          • 1970-01-01
          相关资源
          最近更新 更多