QT tableview列宽随窗口改变

首先要设置tableview大小随窗口大小改变而改变,通过ui文件的布局可进行设置
在这里插入图片描述

代码

小窗口图
在这里插入图片描述
大窗口图
在这里插入图片描述
MainWindow.h

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

MainWindow.cpp

QT5代码

//必须要写这句,这样鼠标移动到tableview里就会执行on_tableView_entered,否则只有点击tabview的时候才会触发
ui->tableView->setMouseTracking(true);

//窗口大小发生改变
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);
}

QT4代码

//QT4
//列宽随窗口大小改变而改变,每列平均分配,充满整个表,但是此时列宽不能拖动进行改变
       ui->tableView->horizontalHeader()->setResizeMode(QHeaderView::Stretch);

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值