QtableWidget не показывает данные

У меня есть класс, который создает случайные данные, которые я хотел бы показать в виде таблицы в главном окне.

Я добавил через Designer табличное представление в главное окно и назвал его tblData.
Я подозреваю, что проблема связана с этим, потому что, когда я вызываю конструктор, пользовательский файл с некоторой реализацией уже существует.

Я взял раздел «Подробное описание» из 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 notqDebug() << datapoint;  // works
}}

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

1

Решение

Я думаю, что вы должны определить размеры вашей таблицы, прежде чем начинать заполнять ее данными, т.е.

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

Причина в том, что по умолчанию начальное количество строк и столбцов таблицы равно 0, поэтому вновь добавленные элементы не отображаются.

4

Другие решения


По вопросам рекламы [email protected]