3

我有一个创建随机数据的类,我想在主窗口的表格视图中显示这些数据。

我通过 Designer 向主窗口添加了一个表格视图,并将其命名为 tblData。我怀疑问题与此有关,因为当我调用构造函数时,具有某些实现的 ui 文件已经存在。

我已将http://qt-project.org/doc/qt-5/qtablewidget.html中的“详细说明”部分作为指导....

但是,该表仍然是空的。我不明白为什么...非常感谢。

include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    QStringList headers;
    headers << "Datapoints";

    Dataset *myData;
    myData = new Dataset();
    myData->createRandomData(10);   // create a ten element vector

    QVector<int> data;
    data = myData->getDataVector(); // data vector created in class Dataset
    qDebug() << data;

    int i;
    for (i = 0 ; i < data.size() ; i++){
        QString datapoint;
        datapoint = QString::number(data[i]);
        QTableWidgetItem * newItem = new QTableWidgetItem(datapoint);

        ui->tblData->setItem(i, 0, newItem); // works not


        qDebug() << datapoint;  // works
    }


}

MainWindow::~MainWindow()
{
    delete ui;
}
4

1 回答 1

12

我认为您必须在开始使用数据填充表格之前定义表格的尺寸,即

ui->tblData->setRowCount(data.size());
ui->tblData->setColumnCount(1);

原因是默认情况下,表的初始行列数为0,所以新添加的项是不可见的。

于 2014-09-28T07:41:24.997 回答