【问题标题】:How can I show data on QTableWidget and read data from it with header?如何在 QTableWidget 上显示数据并使用标题从中读取数据?
【发布时间】:2010-05-06 07:34:55
【问题描述】:

如何在 QTableWidget 上显示数据并使用 header 从中读取数据?

【问题讨论】:

  • @ayla 使用 Qt 文档作为起点:doc.trolltech.com/4.6/qtablewidget.html#details
  • 这个book on Qt 由最好的Qt 培训师之一免费提供和编写。在进入并单击布局设计器之前,您确实需要了解一些“Qt 方式”。
  • 您尝试了什么,阅读了哪些文档? 2010 年的 Man 一定是 SO 的沙拉日,因为他们可以零努力地提问。 :)

标签: qt qtablewidget


【解决方案1】:

1)。使用此示例代码创建表:

filesTable = new QTableWidget(0, 2);
QStringList labels;
labels << tr("File Name") << tr("Size");
filesTable->setHorizontalHeaderLabels(labels);
filesTable->horizontalHeader()->setResizeMode(0, QHeaderView::Stretch);
filesTable->verticalHeader()->hide();
filesTable->setShowGrid(false);

2)。添加行:

int row = filesTable->rowCount();
filesTable->insertRow(row);
filesTable->setItem(row, 0, fileNameItem);
filesTable->setItem(row, 1, sizeItem);

享受吧。

【讨论】:

  • 我认为filesTable-&gt;insertRow(row);这一行将覆盖最后一行而不是添加新行,它应该是filesTable-&gt;insertRow(row + 1);fileNameItemsizeItem 应该是 QTableWidgetItem 的一个实例,如下所示:QTableWidgetItem *fileNameItem = new QTableWidgetItem; fileNameItem-&gt;setText("file name item"); QTableWidgetItem *sizeItem = new QTableWidgetItem; sizeItem-&gt;setText("size item");
  • @SIFE 感谢您的回复。我用我的代码检查了你的评论,没有发现任何问题。 insertRow( row ),其中int row = filesTable-&gt;rowCount() 工作正常...
  • 由于行数是基于 0 的,使用 row 是正确的,使用 row+1 是错误的,但是由于一些防御性“保存”而有效白痴”限制了检查。 :-)
【解决方案2】:

创建列:

ui->tableWidget->setColumnCount('the number of columns');

在插入行之前,您需要设置总行数:

ui->tableWidget->setRowCount('number of rows');

现在循环遍历行和列并设置每个中的数据

for (int ridx = 0 ; ridx < 'number of rows' ; ridx++ )
{
    for (int cidx = 0 ; cidx < 'number of columns' ; cidx++)
    {
      QTableWidgetItem* item = new QTableWidgetItem();
      item->setText('text or number to display');
      ui->tableWidget->setItem(ridx,cidx,item);
    }
}

设置标题

ui->tableWidget->setHorizontalHeaderLabels('QStringList containing the names');

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 2019-04-15
    • 1970-01-01
    • 2019-11-17
    • 2018-11-15
    • 1970-01-01
    相关资源
    最近更新 更多