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. QComboBox palette not working
QtWS25 Last Chance

QComboBox palette not working

Scheduled Pinned Locked Moved Solved General and Desktop
14 Posts 3 Posters 3.0k 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.
  • EngelardE Offline
    EngelardE Offline
    Engelard
    wrote on last edited by Engelard
    #1

    QPalette and QComboBox are included.

    QPalette oriPal;  //at the .h file
    
    oriPal = cbBox->palette();
    oriPal.setColor(QPalette::Base, Qt::red);
    
    cbBox->setPalette(oriPal);
    

    Here is list of possible roles for every element of widget, you can scroll not so far to the ColorRole.

    None of them working in my app except QPalette::Text .

    So text of my ComboBox(and it's contains) are possible to change, but anything else - no. Why?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi,

      What version of Qt are you using ?
      On what platform ?

      Note that the platform is allowed to ignore values of the palette so it might be what is happening.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      EngelardE 2 Replies Last reply
      1
      • SGaistS SGaist

        Hi,

        What version of Qt are you using ?
        On what platform ?

        Note that the platform is allowed to ignore values of the palette so it might be what is happening.

        EngelardE Offline
        EngelardE Offline
        Engelard
        wrote on last edited by
        #3

        @SGaist said in QComboBox palette not working:

        What version of Qt are you using ?

        alt text

        On what platform ?

        Windows 10 Education

        mrjjM 1 Reply Last reply
        0
        • EngelardE Engelard

          @SGaist said in QComboBox palette not working:

          What version of Qt are you using ?

          alt text

          On what platform ?

          Windows 10 Education

          mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by mrjj
          #4

          @Engelard
          Hi
          That is the Qt version Creator was build with.
          The Qt version used to make programs can be very
          different. (and you can have multiple version installed)

          you can look in Projects
          alt text

          1 Reply Last reply
          1
          • SGaistS SGaist

            Hi,

            What version of Qt are you using ?
            On what platform ?

            Note that the platform is allowed to ignore values of the palette so it might be what is happening.

            EngelardE Offline
            EngelardE Offline
            Engelard
            wrote on last edited by
            #5

            @SGaist said in QComboBox palette not working:

            Note that the platform is allowed to ignore values of the palette so it might be what is happening.

            Definitely not. Since i mentioned at the beginning that palette of textColors are applied to my ComboBoxes, so that is not igrnoring.

            mrjjM 1 Reply Last reply
            0
            • EngelardE Engelard

              @SGaist said in QComboBox palette not working:

              Note that the platform is allowed to ignore values of the palette so it might be what is happening.

              Definitely not. Since i mentioned at the beginning that palette of textColors are applied to my ComboBoxes, so that is not igrnoring.

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @Engelard
              Hi
              Some platforms QStyle might not use ( as in ignore) some of the roles.
              Some roles that worked on linux had no effect in Windows in my app.
              http://doc.qt.io/qt-5/style-reference.html

              Also, the Qcombobox is actually a view and uses the models role hints which
              might not use palette that much for "items"
              https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qcombobox.cpp.html

              EngelardE 1 Reply Last reply
              2
              • mrjjM mrjj

                @Engelard
                Hi
                Some platforms QStyle might not use ( as in ignore) some of the roles.
                Some roles that worked on linux had no effect in Windows in my app.
                http://doc.qt.io/qt-5/style-reference.html

                Also, the Qcombobox is actually a view and uses the models role hints which
                might not use palette that much for "items"
                https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qcombobox.cpp.html

                EngelardE Offline
                EngelardE Offline
                Engelard
                wrote on last edited by
                #7

                @mrjj Frankly i changed all to styleSheets, not such handy, more complex code but working more or less...

                mrjjM 1 Reply Last reply
                0
                • EngelardE Engelard

                  @mrjj Frankly i changed all to styleSheets, not such handy, more complex code but working more or less...

                  mrjjM Offline
                  mrjjM Offline
                  mrjj
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  @Engelard
                  ok :)
                  Im not sure what you want to color, but stylesheet works fine as long
                  one not trying to combine with models roles :)

                  EngelardE 1 Reply Last reply
                  1
                  • mrjjM mrjj

                    @Engelard
                    ok :)
                    Im not sure what you want to color, but stylesheet works fine as long
                    one not trying to combine with models roles :)

                    EngelardE Offline
                    EngelardE Offline
                    Engelard
                    wrote on last edited by
                    #9

                    @mrjj said in QComboBox palette not working:

                    Im not sure what you want to color,

                    simple BG-color, with palette it would be 2 lines of code, with stylesheet it 6(alot of conversons to each color from QCOlor, then it convert to string, lots of extrawork).

                    mrjjM 1 Reply Last reply
                    0
                    • EngelardE Engelard

                      @mrjj said in QComboBox palette not working:

                      Im not sure what you want to color,

                      simple BG-color, with palette it would be 2 lines of code, with stylesheet it 6(alot of conversons to each color from QCOlor, then it convert to string, lots of extrawork).

                      mrjjM Offline
                      mrjjM Offline
                      mrjj
                      Lifetime Qt Champion
                      wrote on last edited by
                      #10

                      @Engelard
                      You can also do
                      ui->comboBox->setItemData( 0, QColor( Qt::black ), Qt::BackgroundRole );
                      ui->comboBox->setItemData( 1, QColor( Qt::red ), Qt::BackgroundRole );
                      since its uses an (internal) model. and is basically a view like Listview etc.

                      EngelardE 1 Reply Last reply
                      1
                      • mrjjM mrjj

                        @Engelard
                        You can also do
                        ui->comboBox->setItemData( 0, QColor( Qt::black ), Qt::BackgroundRole );
                        ui->comboBox->setItemData( 1, QColor( Qt::red ), Qt::BackgroundRole );
                        since its uses an (internal) model. and is basically a view like Listview etc.

                        EngelardE Offline
                        EngelardE Offline
                        Engelard
                        wrote on last edited by Engelard
                        #11

                        @mrjj said in QComboBox palette not working:

                        @Engelard
                        You can also do
                        ui->comboBox->setItemData( 0, QColor( Qt::black ), Qt::BackgroundRole );
                        ui->comboBox->setItemData( 1, QColor( Qt::red ), Qt::BackgroundRole );

                        Hey, that's pretty good!

                        But it applied only for items inside(which great, will use in future maybe), i still can't find something like ->setData(); so it would be applied for comboBox container it'self.

                        mrjjM 1 Reply Last reply
                        0
                        • EngelardE Engelard

                          @mrjj said in QComboBox palette not working:

                          @Engelard
                          You can also do
                          ui->comboBox->setItemData( 0, QColor( Qt::black ), Qt::BackgroundRole );
                          ui->comboBox->setItemData( 1, QColor( Qt::red ), Qt::BackgroundRole );

                          Hey, that's pretty good!

                          But it applied only for items inside(which great, will use in future maybe), i still can't find something like ->setData(); so it would be applied for comboBox container it'self.

                          mrjjM Offline
                          mrjjM Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on last edited by
                          #12

                          @Engelard
                          well the roles in the model is only use for items and not for the view
                          http://doc.qt.io/qt-5/qcombobox.html#view

                          but it tried your code and it did work for me ??

                          alt text

                          EngelardE 1 Reply Last reply
                          0
                          • mrjjM mrjj

                            @Engelard
                            well the roles in the model is only use for items and not for the view
                            http://doc.qt.io/qt-5/qcombobox.html#view

                            but it tried your code and it did work for me ??

                            alt text

                            EngelardE Offline
                            EngelardE Offline
                            Engelard
                            wrote on last edited by
                            #13

                            @mrjj said in QComboBox palette not working:

                            but it tried your code and it did work for me ??

                            sorry i don't get that part.

                            mrjjM 1 Reply Last reply
                            0
                            • EngelardE Engelard

                              @mrjj said in QComboBox palette not working:

                              but it tried your code and it did work for me ??

                              sorry i don't get that part.

                              mrjjM Offline
                              mrjjM Offline
                              mrjj
                              Lifetime Qt Champion
                              wrote on last edited by
                              #14

                              @Engelard
                              Hi

                              QPalette oriPal;  //at the .h file
                              oriPal = cbBox->palette();
                              oriPal.setColor(QPalette::Base, Qt::red);
                              cbBox->setPalette(oriPal);
                              

                              did color it red as picture showed.
                              so it did use QPalette::Base ( Qt 5.11, windows)

                              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