QTableView通过setColumnWidth设置了列宽无效的问题

在用到QT的QTableView时,为了显示效果,向手动的设置每一列的宽度,但是如下的代码是无效的。

	ui->tableView->setColumnWidth(0,150);
    ui->tableView->setColumnWidth(1,150);
    ui->tableView->setColumnWidth(2,150);
    ui->tableView->setColumnWidth(3,150);
    MyTableModel* model = new MyTableModel(this);
    model->setInfos(fileRecords);
    MySortFilterProxyModel* proxyModel =  new MySortFilterProxyModel(this);
    proxyModel->setSourceModel(model);
    ui->tableView->setModel(proxyModel);

效果:

QTableView通过setColumnWidth设置了列宽无效的问题_第1张图片

而将模型设置给表格视图之后,再设置tableveiw的列宽就有效果了。

    MyTableModel* model = new MyTableModel(this);
    model->setInfos(fileRecords);
    MySortFilterProxyModel* proxyModel =  new MySortFilterProxyModel(this);
    proxyModel->setSourceModel(model);
    ui->tableView->setModel(proxyModel);
    ui->tableView->setColumnWidth(0,150);
    ui->tableView->setColumnWidth(1,150);
    ui->tableView->setColumnWidth(2,150);
    ui->tableView->setColumnWidth(3,150);

效果

QTableView通过setColumnWidth设置了列宽无效的问题_第2张图片

你可能感兴趣的:(QT,qt5)