在qtableview标题中一起调整几个部分的大小

时间:2014-07-30 19:21:25

标签: qt qtableview

设置QHeaderView::setResizeMode(QHeaderView::Interactive)后,如何将多个标题部分调整大小。例如,当我减小一个部分的大小(将其右边框向左拖动)时,我希望它的所有左边部分也减小它们的大小。

1 个答案:

答案 0 :(得分:0)

您可以使用void QHeaderView::sectionResized ( int logicalIndex, int oldSize, int newSize )信号。调整节大小时会发出此信号。该部分的逻辑编号由logicalIndex指定,旧版本由oldSize指定,新尺寸由newSize指定。

因此,只需将此信号连接到插槽即可更新以前的标题大小:

connect(ui->tableView->horizontalHeader(),SIGNAL(sectionResized(int,int,int)),this,SLOT(updateSizes(int,int,int)));

updateSizes插槽就像:

void updateSizes(int logicalIndex, int oldSize, int newSize )
{

    for(int i=0; i<logicalIndex; i++)
         ui->tableView->horizontalHeader()->resizeSection(i, newSize);
}