Text alignment on QTableWidgetItem
-
wrote on 26 Oct 2019, 06:57 last edited by
Hello to all,
I have a QTAbleWidget on which I have inserted a QTableWidgetItem as follows:ui-> tableData-> setItem (line ++, 1, new QTableWidgetItem (lang.at (ConfigData.at (32))));
tableData is the QTableWidget.
I would like the data (lang.at (ConfigData ...) to be centered in the cell.
I did search on google, but I found only solutions that unfortunately at the moment I cannot understand.
Some advice?
Thanks.Stephen
-
-
wrote on 26 Oct 2019, 08:58 last edited by
Hi mrjj and thanks for your help.
I've tested your solution and works fine, but, I've code as this:ui->tableData->setItem(riga, 0, new QTableWidgetItem("MAP1")); ui->tableData->setItem(riga++, 1, new QTableWidgetItem(QString::number(ConfigData.at(3)))); ui->tableData->setItem(riga, 0, new QTableWidgetItem("MAP2")); ui->tableData->setItem(riga++, 1, new QTableWidgetItem(QString::number(ConfigData.at(4)))); ui->tableData->setItem(riga, 0, new QTableWidgetItem("SUB1")); ui->tableData->setItem(riga++, 1, new QTableWidgetItem(QString::number(ConfigData.at(5))));
the columns and rows number is dinamic.
I wondered if it was possible to set textalignment directly in this definition:ui->tableData->setItem(riga, 0, new QTableWidgetItem("SUB1")); ui->tableData->setItem(riga++, 1, ---->new QTableWidgetItem(QString::number(ConfigData.at(5))));
without create a QTableWidgetItem object for each row how you've suggested me:
auto item1 = new QTableWidgetItem(QString::number((ConfigData.at(1) << 8)+ConfigData.at(2))); item1->setTextAlignment(Qt::AlignCenter); ui->tableData->setItem(riga, 0, new QTableWidgetItem("MAP2")); ui->tableData->setItem(riga++, 1, item1);
Thanks again for your help.
-
Hi mrjj and thanks for your help.
I've tested your solution and works fine, but, I've code as this:ui->tableData->setItem(riga, 0, new QTableWidgetItem("MAP1")); ui->tableData->setItem(riga++, 1, new QTableWidgetItem(QString::number(ConfigData.at(3)))); ui->tableData->setItem(riga, 0, new QTableWidgetItem("MAP2")); ui->tableData->setItem(riga++, 1, new QTableWidgetItem(QString::number(ConfigData.at(4)))); ui->tableData->setItem(riga, 0, new QTableWidgetItem("SUB1")); ui->tableData->setItem(riga++, 1, new QTableWidgetItem(QString::number(ConfigData.at(5))));
the columns and rows number is dinamic.
I wondered if it was possible to set textalignment directly in this definition:ui->tableData->setItem(riga, 0, new QTableWidgetItem("SUB1")); ui->tableData->setItem(riga++, 1, ---->new QTableWidgetItem(QString::number(ConfigData.at(5))));
without create a QTableWidgetItem object for each row how you've suggested me:
auto item1 = new QTableWidgetItem(QString::number((ConfigData.at(1) << 8)+ConfigData.at(2))); item1->setTextAlignment(Qt::AlignCenter); ui->tableData->setItem(riga, 0, new QTableWidgetItem("MAP2")); ui->tableData->setItem(riga++, 1, item1);
Thanks again for your help.
@Stefanoxjx
Hi
You could just use a small helper function to keep it as one liners.
like:(above the other function) QTableWidgetItem * MakeItem(QString value) { auto item = new QTableWidgetItem(value); item->setTextAlignment(Qt::AlignCenter); return item; } ... ui->tableData->setItem(riga++, 1, MakeItem(QString::number(ConfigData.at(5))));
-
wrote on 26 Oct 2019, 10:33 last edited by
Hi mrjj, your solution works very fine.
Many thanks :)Stefano
1/5