Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Solved how to hightlight certain rows in qt tablewidget?

    General and Desktop
    2
    8
    146
    Loading More Posts
    • 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.
    • small_bird
      small_bird last edited by

      0_1567752387495_b606a84f-2b0f-4ff4-9775-616c7203d4b2-image.png
      hello, everyone.
      as showed in the above picture, now I want to hightlight certain lines in the table, meaning that after I click the down forward arrow in the scroll bar right in the picture, the hightlighted rows move up and when I click the up forward arrow in the scroll bar, the hightlighted rows shows again.
      how to do that? Thank in advance!

      1 Reply Last reply Reply Quote 0
      • mrjj
        mrjj Lifetime Qt Champion last edited by

        Hi
        and this purple line should be something other than the currently
        selected row ?
        Like a color code on a row. ?

        small_bird 2 Replies Last reply Reply Quote 0
        • small_bird
          small_bird @mrjj last edited by small_bird

          @mrjj The purple line is not the selected row, it shows the mouse selecting behavior. The yellow lines is the selected rows, though just show the first column.

          1 Reply Last reply Reply Quote 0
          • small_bird
            small_bird @mrjj last edited by

            @mrjj It seems like that the tablewidget can only manipulate the current showing rows.

            1 Reply Last reply Reply Quote 0
            • mrjj
              mrjj Lifetime Qt Champion last edited by

              Ok
              so i assume you cannot just use the selection line for this.
              (it can be set to select whole row at once)

              Well you can color the items backgrounds. that also work even if
              the items are not currently shown.

              small_bird 1 Reply Last reply Reply Quote 0
              • small_bird
                small_bird @mrjj last edited by

                @mrjj ```

                    QTableWidgetItem *item1 = new QTableWidgetItem;
                     item1->setTextColor(txtColor);
                     item1->setBackgroundColor(backColor);
                     item1->setTextAlignment(Qt::AlignCenter);
                     ui->tableWidget->setItem(cnt,0,item1);
                
                it is the code, following your advice, however, no effect.
                mrjj 1 Reply Last reply Reply Quote 0
                • mrjj
                  mrjj Lifetime Qt Champion @small_bird last edited by mrjj

                  @small_bird
                  Hi
                  Did you remember to adjust row/col count ?
                  Work fine here

                  alt text

                      ui->tableWidget->setRowCount(5);
                      ui->tableWidget->setColumnCount(5);
                  
                      for (int c = 0; c < ui->tableWidget->rowCount(); c++) {
                          QTableWidgetItem *item1 = new QTableWidgetItem;
                          item1->setTextColor(Qt::red);
                          auto col = QColor( rand() % 255, rand() % 255, rand() % 255);
                          item1->setBackgroundColor( col  );
                          item1->setTextAlignment(Qt::AlignCenter);
                          ui->tableWidget->setItem(c, 0, item1);
                      }
                  
                  small_bird 1 Reply Last reply Reply Quote 1
                  • small_bird
                    small_bird @mrjj last edited by

                    @mrjj Thanks a lot, the problem is solved!

                    1 Reply Last reply Reply Quote 2
                    • First post
                      Last post