Hi,
I just started using QT a few days ago and I have the same problem. I can't get the QTableWidget to display data (items). Although it does display the right amount of cells.
Unfortunately setting the column count didn't help in my case.
Any other ideas.. Please?
Thank you,
Filip
The code I am using:
table.pro
QT += core gui
TARGET = table
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS +=
QT += core gui
TARGET = table
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS +=
To copy to clipboard, switch view to plain text mode
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtGui>
#include <QFile>
#include <QColor>
namespace Ui {
class MainWindow;
}
{
Q_OBJECT
public:
explicit MainWindow
(QWidget *parent
= 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtGui>
#include <QFile>
#include <QColor>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
QTableWidget * dataTableWidget;
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
MainWindow w;
w.resize(800,500);
w.show();
return a.exec();
}
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.resize(800,500);
w.show();
return a.exec();
}
To copy to clipboard, switch view to plain text mode
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow
::MainWindow(QWidget *parent
) : ui(new Ui::MainWindow)
{
ui->setupUi(this);
dataTableWidget->resize(243,250);
dataTableWidget->move(25,180);
dataTableWidget->setColumnCount(2);
headers << "Velocity" << "Time";
dataTableWidget->setHorizontalHeaderLabels(headers);
dataTableWidget->show();
QString path
= "/home/filip/Documents/TestScript.csv";
{
}
while (!in.atEnd())
{
dataTableWidget->insertRow(dataTableWidget->rowCount());
qDebug()<<"rowNumber = " << dataTableWidget->rowCount();
int commaIndex = line.indexOf(",");
QString velString
= line.
left(commaIndex
);
qDebug()<< "accString = " << velString;
QString timeString
= line.
mid(commaIndex
+1);
qDebug()<< "timeString = " << timeString;
newVelItem->setText(velString);
newVelItem->setTextColor("black");
dataTableWidget->setItem(dataTableWidget->rowCount(),1,newVelItem);
qDebug()<< "newVelItem = " << newVelItem->text();
newTimeItem->setText(timeString);
newTimeItem->setTextColor("black");
dataTableWidget->setItem(dataTableWidget->rowCount(),2,newTimeItem);
qDebug()<< "newTimeItem = " << newTimeItem->text();
}
dataTableWidget->update();
}
MainWindow::~MainWindow()
{
delete ui;
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
dataTableWidget = new QTableWidget(this);
dataTableWidget->resize(243,250);
dataTableWidget->move(25,180);
dataTableWidget->setColumnCount(2);
QStringList headers;
headers << "Velocity" << "Time";
dataTableWidget->setHorizontalHeaderLabels(headers);
dataTableWidget->show();
QString path = "/home/filip/Documents/TestScript.csv";
QFile file(path);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
{
}
QTextStream in(&file);
while (!in.atEnd())
{
dataTableWidget->insertRow(dataTableWidget->rowCount());
qDebug()<<"rowNumber = " << dataTableWidget->rowCount();
QString line = in.readLine();
int commaIndex = line.indexOf(",");
QString velString = line.left(commaIndex);
qDebug()<< "accString = " << velString;
QString timeString = line.mid(commaIndex+1);
qDebug()<< "timeString = " << timeString;
QTableWidgetItem *newVelItem = new QTableWidgetItem;
newVelItem->setText(velString);
newVelItem->setTextColor("black");
dataTableWidget->setItem(dataTableWidget->rowCount(),1,newVelItem);
qDebug()<< "newVelItem = " << newVelItem->text();
QTableWidgetItem *newTimeItem = new QTableWidgetItem;
newTimeItem->setText(timeString);
newTimeItem->setTextColor("black");
dataTableWidget->setItem(dataTableWidget->rowCount(),2,newTimeItem);
qDebug()<< "newTimeItem = " << newTimeItem->text();
}
dataTableWidget->update();
}
MainWindow::~MainWindow()
{
delete ui;
}
To copy to clipboard, switch view to plain text mode
The csv file I am parsing (TestScript.csv)
0,0
0.5,1
1,2
1.5,3
2,4
2.5,5
3,6
3,7
3,8
3,9
3,10
3,11
3,12
3,13
3,14
3,15
3,16
3,17
3,18
3,19
3,20
3,21
3,22
3,23
3,24
3,25
3,26
3,27
3,28
3,29
3,30
Bookmarks