Rog*_*o77 2 c++ qt qtablewidget qtablewidgetitem
我有一个创建随机数据的类,该数据想在主窗口的表视图中显示。
我通过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;
}
Run Code Online (Sandbox Code Playgroud)
我认为您必须先定义表格的尺寸,然后再开始使用数据进行填充,即
ui->tblData->setRowCount(data.size());
ui->tblData->setColumnCount(1);
Run Code Online (Sandbox Code Playgroud)
原因是默认情况下,表的初始行和列计数为0,因此新添加的项目不可见。