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. QTableWidget setColumnWidth didn't work
QtWS25 Last Chance

QTableWidget setColumnWidth didn't work

Scheduled Pinned Locked Moved Solved General and Desktop
11 Posts 4 Posters 4.2k 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.
  • C Offline
    C Offline
    chris_rookie
    wrote on last edited by
    #1
    ui->table_widget->setColumnCount(4);
    ui->table_widget->setColumnWidth(0, 134);
    ui->table_widget->setColumnWidth(1, 134);
    ui->table_widget->setColumnWidth(2, 60);
    //ui->table_widget->setColumnWidth(3, 134);
    ui->table_widget->horizontalHeader()->setStretchLastSection(true);
    ui->table_widget->horizontalHeader()->setVisible(false);
    //ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    ui->table_widget->verticalHeader()->setHidden(true);
    ui->table_widget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    ui->table_widget->setSelectionMode(QAbstractItemView::SingleSelection);
    ui->table_widget->setSelectionBehavior(QAbstractItemView::SelectRows);
    

    My Widget display as this
    2452fb99-fdfd-4c1e-a8fa-3a6169387637-image.png

    1 Reply Last reply
    0
    • VRoninV Offline
      VRoninV Offline
      VRonin
      wrote on last edited by
      #2

      What does ui->table_widget->horizontalHeader()->sectionResizeMode(); returns? it should be Fixed for you to be able to set the column width manually

      "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
      ~Napoleon Bonaparte

      On a crusade to banish setIndexWidget() from the holy land of Qt

      C 1 Reply Last reply
      0
      • VRoninV VRonin

        What does ui->table_widget->horizontalHeader()->sectionResizeMode(); returns? it should be Fixed for you to be able to set the column width manually

        C Offline
        C Offline
        chris_rookie
        wrote on last edited by
        #3

        @VRonin
        ui->table_widget->setColumnCount(4);
        ui->table_widget->setColumnWidth(0, 134);
        ui->table_widget->setColumnWidth(1, 210);
        ui->table_widget->setColumnWidth(2, 60);
        ui->table_widget->setColumnWidth(3, 134);
        //ui->table_widget->horizontalHeader()->setStretchLastSection(true);
        ui->table_widget->horizontalHeader()->setVisible(false);
        ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
        ui->table_widget->verticalHeader()->setHidden(true);
        ui->table_widget->setEditTriggers(QAbstractItemView::NoEditTriggers);
        ui->table_widget->setSelectionMode(QAbstractItemView::SingleSelection);
        ui->table_widget->setSelectionBehavior(QAbstractItemView::SelectRows);

        now, I wrote it as this, and display as this.
        294a2ba9-df48-4c26-8be2-0b9fe9815f34-image.png

        1 Reply Last reply
        0
        • VRoninV Offline
          VRoninV Offline
          VRonin
          wrote on last edited by
          #4

          ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); overwrites all the previous calls to ui->table_widget->setColumnWidth().
          You should call ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed); before calling setColumnWidth()

          "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
          ~Napoleon Bonaparte

          On a crusade to banish setIndexWidget() from the holy land of Qt

          C 1 Reply Last reply
          4
          • VRoninV VRonin

            ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); overwrites all the previous calls to ui->table_widget->setColumnWidth().
            You should call ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed); before calling setColumnWidth()

            C Offline
            C Offline
            chris_rookie
            wrote on last edited by
            #5

            @VRonin
            ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
            ui->table_widget->setColumnCount(4); //缩写 内容 位置 操作
            ui->table_widget->setColumnWidth(0, 134);
            ui->table_widget->setColumnWidth(1, 210);
            ui->table_widget->setColumnWidth(2, 60);
            ui->table_widget->setColumnWidth(3, 134);
            //ui->table_widget->horizontalHeader()->setStretchLastSection(true);

            3392269a-67a5-479b-9cce-b23a4451db9b-image.png

            my aim is to let the four columns be full of the row and display as the ratio I set。
            How could I achieve ui->table_widget->horizontalHeader()->setSectionResizeMode(QHeaderView::Fixed);
            ui->table_widget->setColumnCount(4); //缩写 内容 位置 操作
            ui->table_widget->setColumnWidth(0, 134);
            ui->table_widget->setColumnWidth(1, 210);
            ui->table_widget->setColumnWidth(2, 60);
            ui->table_widget->setColumnWidth(3, 134);
            //ui->table_widget->horizontalHeader()->setStretchLastSection(true);

            3392269a-67a5-479b-9cce-b23a4451db9b-image.png

            my aim is to let the four columns be full of the row and display as the ratio I set。
            How could I achieve it

            1 Reply Last reply
            0
            • A.A.SEZENA Offline
              A.A.SEZENA Offline
              A.A.SEZEN
              wrote on last edited by
              #6
              //1
                      ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
                      ui->tableWidget->setAlternatingRowColors(true);
                      ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
                      ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectItems);
                  //  ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
                      ui->tableWidget->setShowGrid(false);
                      ui->tableWidget->verticalHeader()->setVisible(false);
                      ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
                  //2    
                      ui->tableWidget->clear();
                      ui->tableWidget->setRowCount(0);
                      ui->tableWidget->setColumnCount(4);
                      ui->tableWidget->setColumnWidth(0, 134);
                      ui->tableWidget->setColumnWidth(1, 210);
                      ui->tableWidget->setColumnWidth(2, 60);
                      ui->tableWidget->setColumnWidth(3, 134);
                  //3    
                      ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "1" << "2" << "3" << "4");
                  //4    
                      ui->tableWidget->setRowCount(1);
                      ui->tableWidget->setItem(0, 1, new QTableWidgetItem("A"));
                      ui->tableWidget->setItem(0, 2, new QTableWidgetItem("B"));
                      ui->tableWidget->setItem(0, 3, new QTableWidgetItem("C"));
                      ui->tableWidget->setItem(0, 4, new QTableWidgetItem("D"));
                  
              
              C 1 Reply Last reply
              0
              • A.A.SEZENA A.A.SEZEN
                //1
                        ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
                        ui->tableWidget->setAlternatingRowColors(true);
                        ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
                        ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectItems);
                    //  ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
                        ui->tableWidget->setShowGrid(false);
                        ui->tableWidget->verticalHeader()->setVisible(false);
                        ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
                    //2    
                        ui->tableWidget->clear();
                        ui->tableWidget->setRowCount(0);
                        ui->tableWidget->setColumnCount(4);
                        ui->tableWidget->setColumnWidth(0, 134);
                        ui->tableWidget->setColumnWidth(1, 210);
                        ui->tableWidget->setColumnWidth(2, 60);
                        ui->tableWidget->setColumnWidth(3, 134);
                    //3    
                        ui->tableWidget->setHorizontalHeaderLabels(QStringList() << "1" << "2" << "3" << "4");
                    //4    
                        ui->tableWidget->setRowCount(1);
                        ui->tableWidget->setItem(0, 1, new QTableWidgetItem("A"));
                        ui->tableWidget->setItem(0, 2, new QTableWidgetItem("B"));
                        ui->tableWidget->setItem(0, 3, new QTableWidgetItem("C"));
                        ui->tableWidget->setItem(0, 4, new QTableWidgetItem("D"));
                    
                
                C Offline
                C Offline
                chris_rookie
                wrote on last edited by
                #7

                @A-A-SEZEN said in QTableWidget setColumnWidth didn't work:

                erticalHeader(

                Hi,
                Thanks for your answer.
                I just do like what you said, but it still doesn't work.

                ui->tableWidget->setAlternatingRowColors(true);
                ui->tableWidget->setShowGrid(false);

                And I think those code didn't effect the result. so I didn't add it.
                Should I wrot them all?

                Pl45m4P A.A.SEZENA 2 Replies Last reply
                0
                • C chris_rookie

                  @A-A-SEZEN said in QTableWidget setColumnWidth didn't work:

                  erticalHeader(

                  Hi,
                  Thanks for your answer.
                  I just do like what you said, but it still doesn't work.

                  ui->tableWidget->setAlternatingRowColors(true);
                  ui->tableWidget->setShowGrid(false);

                  And I think those code didn't effect the result. so I didn't add it.
                  Should I wrot them all?

                  Pl45m4P Offline
                  Pl45m4P Offline
                  Pl45m4
                  wrote on last edited by Pl45m4
                  #8

                  @chris_rookie

                  Try

                  ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeMode::ResizeToContents);
                  

                  But then you are not able to resize the width manually. It automatically resizes to its content.
                  "aaaaaa....." should be "aaaaaaaaaaaaaaaaaaaaaaaaaaa" then.
                  (I dont know if can work with this or if you need to resize manually or programmatically)


                  If debugging is the process of removing software bugs, then programming must be the process of putting them in.

                  ~E. W. Dijkstra

                  C 1 Reply Last reply
                  0
                  • Pl45m4P Pl45m4

                    @chris_rookie

                    Try

                    ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeMode::ResizeToContents);
                    

                    But then you are not able to resize the width manually. It automatically resizes to its content.
                    "aaaaaa....." should be "aaaaaaaaaaaaaaaaaaaaaaaaaaa" then.
                    (I dont know if can work with this or if you need to resize manually or programmatically)

                    C Offline
                    C Offline
                    chris_rookie
                    wrote on last edited by
                    #9

                    @Pl45m4 said in QTableWidget setColumnWidth didn't work:

                    manually

                    Thank you.
                    I tried
                    ui->tableWidget->horizontalHeader()->setResizeMode(QHeaderView::ResizeMode::ResizeToContents);
                    It didnt work.
                    I'll try (I dont know if can work with this or if you need to resize manually or programmatically)

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      chris_rookie
                      wrote on last edited by
                      #10

                      ui->table_widget->resizeColumnToContents(1);

                      I found this in my code. I was so stupid.
                      After I removed it, It works.
                      Thank you all very much And sorry about my mistake.

                      1 Reply Last reply
                      2
                      • C chris_rookie

                        @A-A-SEZEN said in QTableWidget setColumnWidth didn't work:

                        erticalHeader(

                        Hi,
                        Thanks for your answer.
                        I just do like what you said, but it still doesn't work.

                        ui->tableWidget->setAlternatingRowColors(true);
                        ui->tableWidget->setShowGrid(false);

                        And I think those code didn't effect the result. so I didn't add it.
                        Should I wrot them all?

                        A.A.SEZENA Offline
                        A.A.SEZENA Offline
                        A.A.SEZEN
                        wrote on last edited by
                        #11

                        @chris_rookie
                        Hi,
                        I answered your question before I fully understood it.
                        I always add elements to help others, if possible.
                        I wanted to have a message with QTableWidget that I shared the data demonstration with side features.

                        1 Reply Last reply
                        0

                        • Login

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