gpt4 book ai didi

c++ - 带有多行单元格的 QTableView

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:13:13 24 4
gpt4 key购买 nike

如何创建 QTableView 多行单元格?

我正在使用下面的代码填充表格。但是 Whem GetDescription() 返回一个长字符串,内容以 ...

结束

有什么方法可以自动断线吗?

QStandardItemModel * model = new QStandardItemModel(logos.size(), 2, this);
model->setHorizontalHeaderItem(0, new QStandardItem(QString("")));
model->setHorizontalHeaderItem(1, new QStandardItem(QString("Nome")));
model->setHorizontalHeaderItem(2, new QStandardItem(QString("Descrição")));

int row = 0;
foreach(Item * item, items)
{
QStandardItem* check = new QStandardItem(true);
check->setCheckable(true);
model->setItem(row, 0, check);

QStandardItem *nameItem = new QStandardItem(QString(item->GetName()));
nameItem->setEditable(false);
model->setItem(row, 1, nameItem);

QStandardItem *descriptionItem = new QStandardItem(item->GetDescription());
descriptionItem->setEditable(false);
descriptionItem->setToolTip(logo->GetDescription());
model->setItem(row, 2, descriptionItem);
row++;
}

ui->tableView->setModel(model);
ui->tableView->resizeColumnToContents(0);
ui->tableView->resizeColumnToContents(1);
ui->tableView->horizontalHeader()->setSectionResizeMode(0, QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Fixed);
ui->tableView->horizontalHeader()->setSectionResizeMode(2, QHeaderView::Stretch);
ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);

最佳答案

我认为您正在寻找自动换行。确保你有 enabled wordwrap对于 QTableView,然后是 manually resize the rows to fit their contents .这将用文本替换椭圆。

正如您在回答中提到的,您可以 set the QHeaderView to resize到目录automatically ,但是如果你做了很多添加和删除,这会减慢速度。我更喜欢通过大量的加法/减法手动调整大小,特别是因为用户可能会发现无法自己调整大小很烦人。

下面是一些启用自动换行的示例代码,将椭圆设置为出现在中间(我的偏好),然后手动调整行高以适应单词边界处的内容:

ui->tableView->setWordWrap(true);
ui->tableView->setTextElideMode(Qt::ElideMiddle);
ui->tableView->resizeRowsToContents();

关于c++ - 带有多行单元格的 QTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16572929/

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