Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Text alignment on QTableWidgetItem

Text alignment on QTableWidgetItem

Scheduled Pinned Locked Moved Solved General and Desktop
5 Posts 2 Posters 4.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    Stefanoxjx
    wrote on 26 Oct 2019, 06:57 last edited by
    #1

    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

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 26 Oct 2019, 07:13 last edited by
      #2

      Hi
      You can set it on the item
      alt text

      item->setTextAlignment(Qt::AlignCenter);

      so in your case

      auto item = new QTableWidgetItem (lang.at (ConfigData.at (32)));
      item->setTextAlignment(Qt::AlignCenter);
      ui-> tableData-> setItem (line ++, 1,  item);
      
      1 Reply Last reply
      3
      • S Offline
        S Offline
        Stefanoxjx
        wrote on 26 Oct 2019, 08:58 last edited by
        #3

        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.

        M 1 Reply Last reply 26 Oct 2019, 09:04
        0
        • S Stefanoxjx
          26 Oct 2019, 08:58

          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.

          M Offline
          M Offline
          mrjj
          Lifetime Qt Champion
          wrote on 26 Oct 2019, 09:04 last edited by mrjj
          #4

          @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))));
          
          1 Reply Last reply
          5
          • S Offline
            S Offline
            Stefanoxjx
            wrote on 26 Oct 2019, 10:33 last edited by
            #5

            Hi mrjj, your solution works very fine.
            Many thanks :)

            Stefano

            1 Reply Last reply
            0

            1/5

            26 Oct 2019, 06:57

            • Login

            • Login or register to search.
            1 out of 5
            • First post
              1/5
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • Users
            • Groups
            • Search
            • Get Qt Extensions
            • Unsolved