Qt how to insert string inside a cell in QTableWidget
14,728
Thank you @Laszlo Papp, I removed the if(!line.isEmpty())
.
Also, I found that I had missed creating rows and columns, until now i had only created 3 columns using the designer. I added two statements for adding rows and columns. And it worked.
Here is the code:-
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
/*add rows and columns*/
ui->tableWidget->setRowCount(10);
ui->tableWidget->setColumnCount(3);
/*add stuff inside the table view*/
QString line = "hello";
for(int i=0; i<ui->tableWidget->rowCount(); i++)
{
for(int j=0; j<ui->tableWidget->columnCount(); j++)
{
QTableWidgetItem *pCell = ui->tableWidget->item(i, j);
if(!pCell)
{
pCell = new QTableWidgetItem;
ui->tableWidget->setItem(i, j, pCell);
}
pCell->setText(line);
}
}
}
This is the expected and obtained output.
Author by
cappy0704
Updated on June 04, 2022Comments
-
cappy0704 almost 2 years
Possible duplicate: Filling some QTableWidgetItems with QString from file
- How to insert rows at run time in a QTableWidget?
- How to insert hard coded strings in the cells of this QTableWidget?
Here's what I tried before getting stuck... I have inserted the QTableWidget using the Qt designer.
the code: mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); /*add stuff inside the table view*/ QString line = "hello"; for(int i=0; i<ui->tableWidget->rowCount(); i++) { for(int j=0; j<ui->tableWidget->columnCount(); j++) { QTableWidgetItem *pCell = ui->tableWidget->item(i, j); if(!pCell) { pCell = new QTableWidgetItem; ui->tableWidget->setItem(i, j, pCell); } if(!line.isEmpty()) pCell->setText(line); } } #if 0 const int rowAdder = ui->tableWidget->rowCount(); ui->tableWidget->insertRow(rowAdder); QString str = "hello"; ui->tableWidget-> #endif } MainWindow::~MainWindow() { delete ui; }
main.cpp
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }