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. QIcon not actually generating variations for QToolButton?

QIcon not actually generating variations for QToolButton?

Scheduled Pinned Locked Moved Solved General and Desktop
23 Posts 5 Posters 2.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.
  • D davecotter

    does nobody else create QIcons programmatically, to be used in QToolButton?

    ODБOïO Offline
    ODБOïO Offline
    ODБOï
    wrote on last edited by ODБOï
    #13

    @davecotter

    QImage img(":/Icon.png");
    
    auto toolButton = new QToolButton(toolBar);
    toolButton->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
    auto act = new QAction();
    act->setIcon(QPixmap::fromImage(img));
    act->setText("text");
    toolButton->setDefaultAction(act);
    
    1 Reply Last reply
    1
    • D Offline
      D Offline
      davecotter
      wrote on last edited by
      #14

      that code snip only adds in a single state (the up state). i have separate pngs for the down and disabled state that never get used. how do i cause my tool button to use those states?

      kshegunovK 1 Reply Last reply
      0
      • D davecotter

        that code snip only adds in a single state (the up state). i have separate pngs for the down and disabled state that never get used. how do i cause my tool button to use those states?

        kshegunovK Offline
        kshegunovK Offline
        kshegunov
        Moderators
        wrote on last edited by
        #15

        I believe you're looking for this.

        Read and abide by the Qt Code of Conduct

        1 Reply Last reply
        0
        • D Offline
          D Offline
          davecotter
          wrote on last edited by
          #16

          @kshegunov that's literally the code i'm already using but it's not working. see the code snips at the start of this thread, am I doing it wrong?

          kshegunovK 1 Reply Last reply
          0
          • D davecotter

            @kshegunov that's literally the code i'm already using but it's not working. see the code snips at the start of this thread, am I doing it wrong?

            kshegunovK Offline
            kshegunovK Offline
            kshegunov
            Moderators
            wrote on last edited by kshegunov
            #17

            Yeah, sorry. I think it worked for a push button. could you try that? I don't recall currently if it's supposed to work with the toolbar button, I remember recently doing something akin but it was a table delegate so I was drawing it manually.

            EDIT:
            I think my brain had gone on a vacation ...
            What style are you using? Is it possible the style doesn't support that? I usually use Fusion (i.e. Qt drawing).

            Read and abide by the Qt Code of Conduct

            1 Reply Last reply
            0
            • D Offline
              D Offline
              davecotter
              wrote on last edited by
              #18

              not sure what you mean by "style", i'm just using Qt out of the box, i haven't specifically selected a "style".

              unfortunately the "QPushButton" does not draw the icon as "pressed" either, it just darkens the background which is not what i want:

              Screen Shot 2019-09-24 at 10.40.24 AM.png

              kshegunovK 1 Reply Last reply
              0
              • D davecotter

                not sure what you mean by "style", i'm just using Qt out of the box, i haven't specifically selected a "style".

                unfortunately the "QPushButton" does not draw the icon as "pressed" either, it just darkens the background which is not what i want:

                Screen Shot 2019-09-24 at 10.40.24 AM.png

                kshegunovK Offline
                kshegunovK Offline
                kshegunov
                Moderators
                wrote on last edited by
                #19

                not sure what you mean by "style", i'm just using Qt out of the box, i haven't specifically selected a "style".

                Judging by your screenshot you're using the native osx style.

                From what I can see here: https://code.woboq.org/qt5/qtbase/src/widgets/styles/qcommonstyle.cpp.html#1700
                The tool button only takes 3 icon states - active, disabled and normal. Selected isn't one of them. But that's for Fusion, I have no clue what goes in the native osx style. So first advice - switch to fusion and use Normal/Active to alternate between unpressed/pressed. If that's what you're expecting go back to the native style and see if the problem is there. If so I'd say it's either a bug or limitation of the native style's implementation.

                Read and abide by the Qt Code of Conduct

                1 Reply Last reply
                1
                • D Offline
                  D Offline
                  davecotter
                  wrote on last edited by
                  #20

                  Fusion is un-mac-like, so i would not want to use it. strangely, "active" seems to mean "focused". when i click in the button it does turn color as expected but if i track the mouse (keep holding) while dragging OFF the button, it should re-draw in it's UP state, but it doesn't. when i let go it should do the same, but it STAYS looking pressed. if i then click the volume slider, the button THEN draws in the UP state. am i just not getting how this is designed to work?

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    davecotter
                    wrote on last edited by
                    #21

                    here is a minimal (20k) project demonstrating the problem.

                    kshegunovK 1 Reply Last reply
                    0
                    • D davecotter

                      here is a minimal (20k) project demonstrating the problem.

                      kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by kshegunov
                      #22

                      @davecotter said in QIcon not actually generating variations for QToolButton?:

                      Fusion is un-mac-like, so i would not want to use it.

                      I meant it purely as an academic exercise, so to say.

                      @davecotter said in QIcon not actually generating variations for QToolButton?:

                      strangely, "active" seems to mean "focused". when i click in the button it does turn color as expected but if i track the mouse (keep holding) while dragging OFF the button, it should re-draw in it's UP state, but it doesn't. when i let go it should do the same, but it STAYS looking pressed. if i then click the volume slider, the button THEN draws in the UP state.

                      Well, that's odd. Unfortunately I have no answers for you here, sorry.

                      Read and abide by the Qt Code of Conduct

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        davecotter
                        wrote on last edited by
                        #23

                        filed this bug

                        please vote for it / watch it, if you care. thanks.

                        1 Reply Last reply
                        2

                        • Login

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