Qt QTableWidget列调整大小

时间:2013-03-28 15:57:08

标签: c++ qt qtablewidget

我的 MainWindow 带有 QToolbar QWidget QTabWidget 。布局是“网格”。但是,我的窗口可以调整大小,因为我有一个布局,它运行良好。但是有一个问题,在我的 QTabWidget 中我有一个带有两列的 QTableWidget (布局也是“Grid”)。如果我调整整个窗口的大小, QTableWidget 会调整大小,但不会调整列。

例如,每当我调整窗口大小时,我的 QTabWidget 也会调整大小,并且 QTableWidget 也会调整大小。只有我的 QTableWidget 中的列不会。

那么......如果我的 QTableWidget 调整大小,我怎样才能调整它们的大小?

7 个答案:

答案 0 :(得分:10)

  1. 更改ResizeMode的{​​{1}}。例如,使用:

  2. QHeaderView

    使第一列调整大小,使horizontalHeader()->setResizeMode( 0, QHeaderView::Stretch ); 始终满。


    1. 覆盖QTableWidget并在resizeEvent调整大小后自行设置每列的宽度。

答案 1 :(得分:10)

  1. 要拉伸最后一列:

    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
    
  2. 拉伸列 #n

    ui->tableWidget->horizontalHeader()->setSectionResizeMode(n, QHeaderView::Stretch);
    

答案 2 :(得分:4)

ui->mytable->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

答案 3 :(得分:1)

答案 4 :(得分:1)

如果您只想调整最后一列:

ui->tableWidget->horizontalHeader()->setStretchLastSection(1);

答案 5 :(得分:1)

最佳解决方案,在Qt5中,您必须使用setSectionResizeMode代替setResizeMode

tabv = QTableView()
tabv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

答案 6 :(得分:0)

在Qt5中,您必须使用setSectionResizeMode代替setResizeMode

QTableWidget* myTable = new QTableWidet;
QHeaderView* header = myTable->horizontalHeader();
header->setSectionResizeMode(QHeaderView::Stretch);