gpt4 book ai didi

c++ - 使 TableView 的列适合其内容的大小

转载 作者:太空狗 更新时间:2023-10-29 23:05:19 26 4
gpt4 key购买 nike

我目前有一个看起来像这样的表格 View

enter image description here

如您所见,只有第 3 列的宽度合适,而第 1 列和第 2 列的宽度更大。有什么办法可以使列适合内容或明确缩小第一列和第二列。我尝试执行 tableView->resizeColumnsToContents(); 但这没有任何区别。有什么建议吗?

这是我的代码

void Test::AddEntry()
{
QImage myimg;//(":/Test/Images/add.png");
QStandardItem* item_avtr = new QStandardItem();
item_avtr->setData( QPixmap::fromImage( myimg ), Qt::DecorationRole ) ;

QStandardItem* item_aonline = new QStandardItem();
item_aonline->setText("hello");

QStandardItem* item_name = new QStandardItem("Name");


QList<QStandardItem*> lst ;
lst.push_back(item_avtr);
lst.push_back(item_aonline);
lst.push_back(item_name);

ModelOptions->appendRow(lst);

}

模型是这样启动的

    ModelOptions =new QStandardItemModel();
ui.tableView->setModel(ModelOptions);
QStringList labels;

labels.push_back("col1");
labels.push_back("col2");
labels.push_back("col3");
ModelOptions->setHorizontalHeaderLabels(labels);
ui.tableView->horizontalHeader()->setVisible(false);
ui.tableView->verticalHeader()->setVisible(false);
ui.tableView->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
ui.tableView->resizeColumnsToContents();
ui.tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
AddEntry();

最佳答案

  • resizeColumnsToContents() 只会调整列的大小一次,具体取决于表的当前数据。因此,您应该在每次更改该数据时调用它,即在 AddEntry() 的末尾调用它。表中包含但当前未显示在视口(viewport)中的数据不被尊重。

  • resizeColumnsToContents() 会考虑 horizo​​ntalHeaders 的宽度,即使它们被设置为不可见。它们在您的代码中真的命名为“col1”、“col2”和“col3”吗?

关于c++ - 使 TableView 的列适合其内容的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20027773/

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