具有多行单元格的QTableView [英] QTableView with multiline cell

查看:357
本文介绍了具有多行单元格的QTableView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何创建QTableView多行单元格?



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

有什么方法可以自动中断?

  QStandardItemModel *模型= new QStandardItemModel(logos.size(),2,此); 
model-> setHorizo​​ntalHeaderItem(0,new QStandardItem(QString())));
model-> setHorizo​​ntalHeaderItem(1,new QStandardItem(QString( Nome))));
model-> setHorizo​​ntalHeaderItem(2,new QStandardItem(QString(Descrição))));

int行= 0;
foreach(项目*项目,项目)
{
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);
行++;
}

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


解决方案

我只添加到我的代码中:

  ui-> tableView-> verticalHeader()-> setSectionResizeMode(QHeaderView :: ResizeToContents); 


How can I create a QTableView multiline cell?

I'm filling the table using the code bellow. But Whem GetDescription() returns a long string, the content is terminated with ...

There is some way to automatic break the line?

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);

解决方案

I only add to my code:

ui->tableView->verticalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

这篇关于具有多行单元格的QTableView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆