gpt4 book ai didi

c++ - 不同列宽的QTableView

转载 作者:行者123 更新时间:2023-11-30 03:45:54 24 4
gpt4 key购买 nike

我在应用程序中有一个 QTableView 宽度 QAbstractTableModel,我想使每一列具有不同的宽度,并使用调整大小选项 ui->tableView->horizo​​ntalHeader ()->setSectionResizeMode(QHeaderView::Stretch);

在我的模型中我这样做:

    class rangeModel : public QAbstractTableModel {
//other code .......

QVariant rangeModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (orientation != Qt::Horizontal)
return QVariant();
if (role != Qt::DisplayRole && role != Qt::SizeHintRole)
return QVariant();
if(role == Qt::SizeHintRole)
{
switch (section) {
case 0: return QSize(58, 20);
case 1: return QSize(58, 20);
case 2: return QSize(58, 20);
case 3: return QSize(228, 20);
}
}
switch (section) {
case 0: return "PREFIXMIN";
case 1: return "PREFIXMAX";
case 2: return "VALUE";
case 3: return "PROGRESS BAR";
default: return QVariant();
}
}

所以我希望我的行的大小不同,但它并没有发生, View 出于某种原因忽略了 QSizeHint,而且即使没有 QHeaderView 它也不起作用: :Stretch 选项。如何使列和标题的大小不同?

最佳答案

你可能想用这个:

 ui->tableView->resizeColumnsToContents();//resize all the columns based on longest data in every column. 

但是,如果您确实打算使用您在代码中使用的宽度值来调整它们的大小:

ui->tableView->horizontalHeader()->setSectionResizeMode (QHeaderView::Stretch);
ui->tableView->setColumnWidth(0,58);
ui->tableView->setColumnWidth(1,58);
ui->tableView->setColumnWidth(2,58);
ui->tableView->setColumnWidth(3,228);

关于c++ - 不同列宽的QTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34447220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com