У меня есть класс, который создает случайные данные, которые я хотел бы показать в виде таблицы в главном окне.QtableWidget не показывает данные
Я добавил через конструктор табличный вид в главное окно и назвал его 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;
}
Что делать, если вы вызываете 'ui-> tblData-> setRowCount (data.size()); ui-> tblData-> setColumnCount (1); 'перед вашим циклом' for'? – vahancho
Magic! Это работает. Не могли бы вы так выразиться, чтобы добавить его в качестве ответа, чтобы я мог отметить его как решение? Но честно: я не понимаю, зачем инициализировать каждый элемент, поскольку QTableWidget был недостаточным ... – RogerWilco77