首先要设置tableview大小随窗口大小改变而改变,通过ui文件的布局可进行设置
QT tableview列宽随窗口改变

代码

小窗口图
QT tableview列宽随窗口改变
大窗口图
QT tableview列宽随窗口改变
MainWindow.h

private slots:
    void on_pushButton_clicked();
protected:
    void resizeEvent(QResizeEvent *event);

MainWindow.cpp

//窗口大小发生改变
void MainWindow::resizeEvent(QResizeEvent *event)
{
    //列宽随窗口大小改变而改变,每列平均分配,充满整个表,但是此时列宽不能拖动进行改变
    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

    //第四列和第五列适应内容长短分配大小(从0开始计数)
    ui->tableView->horizontalHeader()->setSectionResizeMode(4,QHeaderView::ResizeToContents);
    ui->tableView->horizontalHeader()->setSectionResizeMode(5,QHeaderView::ResizeToContents);

}

//tableview信号槽
void MainWindow::on_tableView_entered(const QModelIndex &index)
{
    //设置列宽可拖动
    ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Interactive);
}

相关文章: