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. How to set the color of the selected QTreeWidgetItem?

How to set the color of the selected QTreeWidgetItem?

Scheduled Pinned Locked Moved Unsolved General and Desktop
13 Posts 5 Posters 13.9k 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.
  • O opengpu2

    How to set the color of the selected QTreeWidgetItem?
    the default selected background color of QTreeWidgetItem is dark-blue, i want to remove this background color and just set a red rectangle for the selected item.
    thank you!

    J.HilkJ Offline
    J.HilkJ Offline
    J.Hilk
    Moderators
    wrote on last edited by
    #4

    @opengpu2
    Hi,

    I would suggest looking into StyleSheets

    with them its easy to accomplish what you want in your case:

    the default selected background color of QTreeWidgetItem is dark-blue, i want to remove this background color and just set a red rectangle for the selected item.
    thank you !

    listWidget->setStyleSheet("QListView::item:selected {background : transparent; border: solid 2px red;}");
    

    Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


    Q: What's that?
    A: It's blue light.
    Q: What does it do?
    A: It turns blue.

    1 Reply Last reply
    3
    • O Offline
      O Offline
      opengpu2
      wrote on last edited by
      #5

      thank you very much!

      J.HilkJ 1 Reply Last reply
      0
      • O opengpu2

        thank you very much!

        J.HilkJ Offline
        J.HilkJ Offline
        J.Hilk
        Moderators
        wrote on last edited by
        #6

        @opengpu2

        just noticed a typo in my code

        background:
        

        ought to be

        background-color:
        

        but you should notice that yourself when you read through the docu :)


        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


        Q: What's that?
        A: It's blue light.
        Q: What does it do?
        A: It turns blue.

        O 1 Reply Last reply
        0
        • O Offline
          O Offline
          opengpu2
          wrote on last edited by
          #7

          ok i got it, thanks very much

          1 Reply Last reply
          0
          • J.HilkJ J.Hilk

            @opengpu2

            just noticed a typo in my code

            background:
            

            ought to be

            background-color:
            

            but you should notice that yourself when you read through the docu :)

            O Offline
            O Offline
            opengpu2
            wrote on last edited by
            #8

            @J.Hilk
            i tried, but it is white background...and the clicked coloum background is grey...

            D 1 Reply Last reply
            0
            • RatzzR Offline
              RatzzR Offline
              Ratzz
              wrote on last edited by
              #9

              @opengpu2
              You can try QBrush as shown here .

              --Alles ist gut.

              1 Reply Last reply
              1
              • O opengpu2

                @J.Hilk
                i tried, but it is white background...and the clicked coloum background is grey...

                D Offline
                D Offline
                Devopia53
                wrote on last edited by Devopia53
                #10

                @opengpu2

                 QListView {
                        show-decoration-selected: 1;
                  }
                 QListView::item:selected {
                      	border: 1px solid red;
                	color: black;
                  }
                 QListView::item:selected:!active {
                      	background: transparent;
                  }
                 QListView::item:selected:active {
                     	background: transparent;
                  }
                 QListView::item:hover {
                        border: 1px solid #FF8888;
                  }
                

                If you need more subcontrols, add style. Or vice versa ...

                1 Reply Last reply
                0
                • O Offline
                  O Offline
                  opengpu2
                  wrote on last edited by
                  #11

                  thank you very much
                  it does work!
                  but my problem is more complicated.
                  i have 2 column in a QTreeWidget, the 1st column is text, the 2nd column i set different color by setBackgroundColor for different rows.
                  and the problem is the default selected item is all blue...
                  now i just want the selected item has a border, and the 1st column has default white background and black text, the 2nd column still has its own background color which i set for different rows.

                  1 Reply Last reply
                  0
                  • O Offline
                    O Offline
                    opengpu2
                    wrote on last edited by
                    #12

                    anyone can help? thx

                    J.HilkJ 1 Reply Last reply
                    0
                    • O opengpu2

                      anyone can help? thx

                      J.HilkJ Offline
                      J.HilkJ Offline
                      J.Hilk
                      Moderators
                      wrote on last edited by
                      #13

                      @opengpu2

                      You can always disable the default focus of your listwidget

                      widget->setFocusPolicy(Qt::NoFocus);
                      

                      And "create your own 'focusHanlder' "

                      connect(widget, &QListWidget::clicked, [=](QModelIndex index){
                      //Do Custom Stuff with clicked item
                      });
                      

                      Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                      Q: What's that?
                      A: It's blue light.
                      Q: What does it do?
                      A: It turns blue.

                      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