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. QToolbar resizing
Forum Updated to NodeBB v4.3 + New Features

QToolbar resizing

Scheduled Pinned Locked Moved Solved General and Desktop
13 Posts 2 Posters 2.4k Views 2 Watching
  • 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.
  • A Alexey Serebryakov

    @Pl45m4

    We've decided to use own implementation of main window of application, not QMainWindow.

    Sure, we use QToolbar with actions/items. And when I resized main window too small toolbar resized too, some items disappeared and appeared ">>" button.

    13fa48c3-dcdd-41a3-8469-8bab3115bf64-image.png

    But when I clicked then nothing happened. I'm not suer that it OS-platform specific, this is Qt feature. I wish to find where that handled in Qt source code.

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

    @Alexey-Serebryakov

    Apparently it's called extension button

    When a toolbar is resized in such a way that it is too small to
    
    show all the items it contains, an extension button will appear as
    
    the last item in the toolbar. Pressing the extension button will
    
    pop up a menu containing the items that do not currently fit in
    
    the toolbar.
    

    Check line 409 from: https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtoolbar.cpp.html#409

    If you read further:

    When a QToolBar is not a child of a QMainWindow, it loses the ability
    
    to populate the extension pop up with widgets added to the toolbar using
    
    addWidget(). Please use widget actions created by inheriting QWidgetAction
    
    and implementing QWidgetAction::createWidget() instead.
    

    So this is the case here :) Because as you've said, you don't have a QMainWindow based "main" window. But you could try what they suggest (QWidgetActions + createWidget())


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

    ~E. W. Dijkstra

    A 1 Reply Last reply
    6
    • Pl45m4P Pl45m4

      @Alexey-Serebryakov

      Apparently it's called extension button

      When a toolbar is resized in such a way that it is too small to
      
      show all the items it contains, an extension button will appear as
      
      the last item in the toolbar. Pressing the extension button will
      
      pop up a menu containing the items that do not currently fit in
      
      the toolbar.
      

      Check line 409 from: https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtoolbar.cpp.html#409

      If you read further:

      When a QToolBar is not a child of a QMainWindow, it loses the ability
      
      to populate the extension pop up with widgets added to the toolbar using
      
      addWidget(). Please use widget actions created by inheriting QWidgetAction
      
      and implementing QWidgetAction::createWidget() instead.
      

      So this is the case here :) Because as you've said, you don't have a QMainWindow based "main" window. But you could try what they suggest (QWidgetActions + createWidget())

      A Offline
      A Offline
      Alexey Serebryakov
      wrote on last edited by
      #5

      @Pl45m4 hi, thanks a lot, in general all be works!

      So, consider following code skeleton

      class MeWidget : public QWidget {
      // some widget implementation
      public:
          ...
      signals:
          ...
      public slots:
          ...
      }
      
      class MyWidgetAction : public QWidgetAction {
      public:
          MyWidgetAction(QObject *parent) : QWidgetAction(parent) {}
      
      protected:
          QWidget *createWidget(QWidget *parent) {
              auto *widget = new MyWidget();
              // some widget tuning
              // but how widget can communicate with application toolbars, menus??
              return widget;
          }
      };
      
      Pl45m4P 1 Reply Last reply
      0
      • A Alexey Serebryakov

        @Pl45m4 hi, thanks a lot, in general all be works!

        So, consider following code skeleton

        class MeWidget : public QWidget {
        // some widget implementation
        public:
            ...
        signals:
            ...
        public slots:
            ...
        }
        
        class MyWidgetAction : public QWidgetAction {
        public:
            MyWidgetAction(QObject *parent) : QWidgetAction(parent) {}
        
        protected:
            QWidget *createWidget(QWidget *parent) {
                auto *widget = new MyWidget();
                // some widget tuning
                // but how widget can communicate with application toolbars, menus??
                return widget;
            }
        };
        
        Pl45m4P Offline
        Pl45m4P Offline
        Pl45m4
        wrote on last edited by Pl45m4
        #6

        @Alexey-Serebryakov said in QToolbar resizing:

        // but how widget can communicate with application toolbars, menus??

        Haven't done something like this before and I don't know if you can use the default, empty popUp and simply put in your widgets to connect your QWidgetActions with your slots or if you have to create your own "extension widget" with createWidget.

        QWidgetActions work like normal QActions, which will additionally create a widget (button) to make them work in a ToolBar, for example.

        Maybe it helps to look further into the code.

        PopUpMenu setup:

        • https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtoolbarlayout.cpp.html#_ZN14QToolBarLayout15setUsePopupMenuEb

        PopUpMenu is filled here:

        • https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtoolbarlayout.cpp.html#548

        Found also these two:

        • https://stackoverflow.com/questions/32350658/qtoolbar-how-does-the-extension-button-get-called
        • https://stackoverflow.com/questions/40597210/issue-with-qt-toolbar-extension-button

        Edit:

        Or maybe you just have to fill your ToolBar using your QWidgetActions:createWidget and the rest is handled automatically... but I dont know :) I usually use QMainWindow.


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

        ~E. W. Dijkstra

        A 1 Reply Last reply
        1
        • Pl45m4P Pl45m4

          @Alexey-Serebryakov said in QToolbar resizing:

          // but how widget can communicate with application toolbars, menus??

          Haven't done something like this before and I don't know if you can use the default, empty popUp and simply put in your widgets to connect your QWidgetActions with your slots or if you have to create your own "extension widget" with createWidget.

          QWidgetActions work like normal QActions, which will additionally create a widget (button) to make them work in a ToolBar, for example.

          Maybe it helps to look further into the code.

          PopUpMenu setup:

          • https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtoolbarlayout.cpp.html#_ZN14QToolBarLayout15setUsePopupMenuEb

          PopUpMenu is filled here:

          • https://code.woboq.org/qt5/qtbase/src/widgets/widgets/qtoolbarlayout.cpp.html#548

          Found also these two:

          • https://stackoverflow.com/questions/32350658/qtoolbar-how-does-the-extension-button-get-called
          • https://stackoverflow.com/questions/40597210/issue-with-qt-toolbar-extension-button

          Edit:

          Or maybe you just have to fill your ToolBar using your QWidgetActions:createWidget and the rest is handled automatically... but I dont know :) I usually use QMainWindow.

          A Offline
          A Offline
          Alexey Serebryakov
          wrote on last edited by Alexey Serebryakov
          #7

          @Pl45m4 thank you for more detailed information. But isn't clear for me. :-(

          Unfortunately, QToolBarLayout and QToolExtension button are in Qt private classes.

          I can't understand what the purpose of QWidgetAction. So what I do in case when my widget already created outside QWidgetAction::createWidget() ?

          Consider,

          class MyWidget: public QWidget {
          // may be some complex widget, with signal/slots...
          };
          ...
          MyWidget *widget = new MyWidget();
          // some tunning of my widget
          
          QWidgetAction *action = new QWidgetAction(toolbar);
          action->setDefaultWidget(widget);
          
          toolbar->insertWidget(action);
          

          So by this way widget does not showing in popup menu by clicking extension button (>>). Because QWidgetAction::createWidget() return null pointer by default implementation.

          1. Ok, make some changes
          MyWidget *widget = new MyWidget();
          // some tunning of my widget
          ...
          class QMyWidgetAction : public QWidgetAction {
          public:
              explicit QMyWidgetAction(QWidget *widget, QObject *parent) : QWidgetAction(parent), widget_(widget)
              QWidget *createWidget(QWidget *parent) { return widget_; }
          private:
            MyWidget *widget_;
          }
          

          This doesn't work too.

          1. HOW CAN I SHOW MY WIDGET IN POPUP MENU BY CLICKING EXTENSION BUTTON WITHOUT SUBCLASSING QWidgetAction???? I need create my widget outside QToolBar and QWidgetAction! :-((((((((

          Thanks a lot, but I'm already go to mad.
          Why they do that implementation???????? :-(((((

          Pl45m4P 1 Reply Last reply
          0
          • A Alexey Serebryakov

            @Pl45m4 thank you for more detailed information. But isn't clear for me. :-(

            Unfortunately, QToolBarLayout and QToolExtension button are in Qt private classes.

            I can't understand what the purpose of QWidgetAction. So what I do in case when my widget already created outside QWidgetAction::createWidget() ?

            Consider,

            class MyWidget: public QWidget {
            // may be some complex widget, with signal/slots...
            };
            ...
            MyWidget *widget = new MyWidget();
            // some tunning of my widget
            
            QWidgetAction *action = new QWidgetAction(toolbar);
            action->setDefaultWidget(widget);
            
            toolbar->insertWidget(action);
            

            So by this way widget does not showing in popup menu by clicking extension button (>>). Because QWidgetAction::createWidget() return null pointer by default implementation.

            1. Ok, make some changes
            MyWidget *widget = new MyWidget();
            // some tunning of my widget
            ...
            class QMyWidgetAction : public QWidgetAction {
            public:
                explicit QMyWidgetAction(QWidget *widget, QObject *parent) : QWidgetAction(parent), widget_(widget)
                QWidget *createWidget(QWidget *parent) { return widget_; }
            private:
              MyWidget *widget_;
            }
            

            This doesn't work too.

            1. HOW CAN I SHOW MY WIDGET IN POPUP MENU BY CLICKING EXTENSION BUTTON WITHOUT SUBCLASSING QWidgetAction???? I need create my widget outside QToolBar and QWidgetAction! :-((((((((

            Thanks a lot, but I'm already go to mad.
            Why they do that implementation???????? :-(((((

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

            @Alexey-Serebryakov said in QToolbar resizing:

            class QMyWidgetAction : public QWidgetAction {
            public:
            explicit QMyWidgetAction(QWidget *widget, QObject *parent) : QWidgetAction(parent), widget_(widget)
            QWidget *createWidget(QWidget *parent) { return widget_; }
            private:
            MyWidget *widget_;
            }

            Forgot Q_OBJECTmacro?! (But I dont know if this will change anything).

            I will try it myself and give feedback later.


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

            ~E. W. Dijkstra

            A 1 Reply Last reply
            1
            • Pl45m4P Pl45m4

              @Alexey-Serebryakov said in QToolbar resizing:

              class QMyWidgetAction : public QWidgetAction {
              public:
              explicit QMyWidgetAction(QWidget *widget, QObject *parent) : QWidgetAction(parent), widget_(widget)
              QWidget *createWidget(QWidget *parent) { return widget_; }
              private:
              MyWidget *widget_;
              }

              Forgot Q_OBJECTmacro?! (But I dont know if this will change anything).

              I will try it myself and give feedback later.

              A Offline
              A Offline
              Alexey Serebryakov
              wrote on last edited by
              #9

              @Pl45m4 ok thanks.

              So about Q_OBJECT never mind.

              Pl45m4P 1 Reply Last reply
              0
              • A Alexey Serebryakov

                @Pl45m4 ok thanks.

                So about Q_OBJECT never mind.

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

                @Alexey-Serebryakov

                According to the docs, it says that you need a QMainWindow mainWindow with your ToolBar so that the so called "extension button [>>]" works.

                So I made a Testproject:
                (New Qt App -> QWidget as base class instead of QMainWindow).

                Main.cpp (nothing special)
                My main widget (still a QWidget and no MainWindow) is called MainWidget).

                #include "mainwidget.h"
                
                #include <QApplication>
                
                int main(int argc, char *argv[])
                {
                    QApplication a(argc, argv);
                    MainWidget w;
                    w.show();
                    return a.exec();
                }
                

                Widget code:

                #include "mainwidget.h"
                #include "ui_mainwidget.h"
                #include <QToolBar>
                #include  <QAction>
                #include <QHBoxLayout>
                #include <QVBoxLayout>
                #include <QDebug>
                #include <QPushButton>
                
                MainWidget::MainWidget(QWidget *parent)
                    : QWidget(parent)
                    , ui(new Ui::MainWidget)
                {
                    ui->setupUi(this);
                
                    QToolBar *tb = new QToolBar();
                    QAction *a1 = new QAction("A");
                    QAction *a2 = new QAction("B");
                    QAction *a3 = new QAction("C");
                    QAction *a4 = new QAction("D");
                    QAction *a5 = new QAction("E");
                
                    connect(a1, &QAction::triggered, [=](){
                
                        qDebug() << "A";
                
                    });
                    QPushButton *pb = new QPushButton("ANOTHER TEST");
                    MyWidgetAction *wa = new MyWidgetAction(pb, tb);
                
                    tb->addAction(a1);
                    tb->addAction(a2);
                    tb->addAction(a3);
                
                    tb->addAction(wa);
                
                    tb->addAction(a4);
                    tb->addAction(a5);
                
                
                
                
                    QVBoxLayout *vBox = new QVBoxLayout();
                    vBox->addWidget(tb);
                    setLayout(vBox);
                
                
                }
                
                MainWidget::~MainWidget()
                {
                    delete ui;
                }
                
                

                Custom Widget Action:

                #ifndef MYWIDGETACTION_H
                #define MYWIDGETACTION_H
                
                #include <QObject>
                #include <QWidget>
                #include <QWidgetAction>
                
                class MyWidgetAction: public QWidgetAction
                {
                    Q_OBJECT
                public:
                    MyWidgetAction(QWidget *w, QWidget* parent);
                
                    QWidget* createWidget(QWidget* parent);
                
                private:
                
                    QWidget *m_widget; // Does NOT work
                };
                
                #endif // MYWIDGETACTION_H
                
                
                #include "mywidgetaction.h"
                #include <QPushButton>
                #include <QLineEdit>
                #include <QDebug>
                
                MyWidgetAction::MyWidgetAction(QWidget *w, QWidget *parent)
                    : QWidgetAction(parent),
                      m_widget(w) // Does NOT work
                {
                }
                
                QWidget *MyWidgetAction::createWidget(QWidget *parent)
                {
                    QPushButton *widget = new QPushButton("Test", parent);
                //    QLineEdit *widget = new QLineEdit(parent);
                    return widget;
                
                
                // // ####  Does not work ####
                //    m_widget->setParent(parent);
                //    return m_widget;
                
                }
                
                

                When you have custom widgets in your ToolBar and no QMainWindow, you'll need the custom QWidgetActons.

                What you've tried doesn't seem to work. Apparently the createWidget function has to create your widget. You can't pass a widget to your widgetAction class and use it there. Even when you re-parent it, it does not work.
                I think, it's because it tries to re-build your widget every time the extension menu is shown, so it fills the menu one by one with the hidden widgets and creates its actions.

                In my case, the PushButton widget saying "ANOTHER TEST" does not work with the extension menu, but the PushButton ("Test") created by createWidgetinside MyWidgetAction class works.
                Even other widgets like QLineEdits or every other custom widget, that you can put in a QToolBar will work, when you do it like this :)

                That you can not pass widgets to WidgetAction to stay more flexible, is very unfortunate and I also don't like it, but maybe the other way won't work because of some reason.
                ... but that is something you should ask the Qt Devs :)

                ToolBarWidget.png

                ToolBarMenuSmall.png.png

                Edit:

                (BTW: Ubuntu + Qt 5.15)


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

                ~E. W. Dijkstra

                A 1 Reply Last reply
                0
                • Pl45m4P Pl45m4

                  @Alexey-Serebryakov

                  According to the docs, it says that you need a QMainWindow mainWindow with your ToolBar so that the so called "extension button [>>]" works.

                  So I made a Testproject:
                  (New Qt App -> QWidget as base class instead of QMainWindow).

                  Main.cpp (nothing special)
                  My main widget (still a QWidget and no MainWindow) is called MainWidget).

                  #include "mainwidget.h"
                  
                  #include <QApplication>
                  
                  int main(int argc, char *argv[])
                  {
                      QApplication a(argc, argv);
                      MainWidget w;
                      w.show();
                      return a.exec();
                  }
                  

                  Widget code:

                  #include "mainwidget.h"
                  #include "ui_mainwidget.h"
                  #include <QToolBar>
                  #include  <QAction>
                  #include <QHBoxLayout>
                  #include <QVBoxLayout>
                  #include <QDebug>
                  #include <QPushButton>
                  
                  MainWidget::MainWidget(QWidget *parent)
                      : QWidget(parent)
                      , ui(new Ui::MainWidget)
                  {
                      ui->setupUi(this);
                  
                      QToolBar *tb = new QToolBar();
                      QAction *a1 = new QAction("A");
                      QAction *a2 = new QAction("B");
                      QAction *a3 = new QAction("C");
                      QAction *a4 = new QAction("D");
                      QAction *a5 = new QAction("E");
                  
                      connect(a1, &QAction::triggered, [=](){
                  
                          qDebug() << "A";
                  
                      });
                      QPushButton *pb = new QPushButton("ANOTHER TEST");
                      MyWidgetAction *wa = new MyWidgetAction(pb, tb);
                  
                      tb->addAction(a1);
                      tb->addAction(a2);
                      tb->addAction(a3);
                  
                      tb->addAction(wa);
                  
                      tb->addAction(a4);
                      tb->addAction(a5);
                  
                  
                  
                  
                      QVBoxLayout *vBox = new QVBoxLayout();
                      vBox->addWidget(tb);
                      setLayout(vBox);
                  
                  
                  }
                  
                  MainWidget::~MainWidget()
                  {
                      delete ui;
                  }
                  
                  

                  Custom Widget Action:

                  #ifndef MYWIDGETACTION_H
                  #define MYWIDGETACTION_H
                  
                  #include <QObject>
                  #include <QWidget>
                  #include <QWidgetAction>
                  
                  class MyWidgetAction: public QWidgetAction
                  {
                      Q_OBJECT
                  public:
                      MyWidgetAction(QWidget *w, QWidget* parent);
                  
                      QWidget* createWidget(QWidget* parent);
                  
                  private:
                  
                      QWidget *m_widget; // Does NOT work
                  };
                  
                  #endif // MYWIDGETACTION_H
                  
                  
                  #include "mywidgetaction.h"
                  #include <QPushButton>
                  #include <QLineEdit>
                  #include <QDebug>
                  
                  MyWidgetAction::MyWidgetAction(QWidget *w, QWidget *parent)
                      : QWidgetAction(parent),
                        m_widget(w) // Does NOT work
                  {
                  }
                  
                  QWidget *MyWidgetAction::createWidget(QWidget *parent)
                  {
                      QPushButton *widget = new QPushButton("Test", parent);
                  //    QLineEdit *widget = new QLineEdit(parent);
                      return widget;
                  
                  
                  // // ####  Does not work ####
                  //    m_widget->setParent(parent);
                  //    return m_widget;
                  
                  }
                  
                  

                  When you have custom widgets in your ToolBar and no QMainWindow, you'll need the custom QWidgetActons.

                  What you've tried doesn't seem to work. Apparently the createWidget function has to create your widget. You can't pass a widget to your widgetAction class and use it there. Even when you re-parent it, it does not work.
                  I think, it's because it tries to re-build your widget every time the extension menu is shown, so it fills the menu one by one with the hidden widgets and creates its actions.

                  In my case, the PushButton widget saying "ANOTHER TEST" does not work with the extension menu, but the PushButton ("Test") created by createWidgetinside MyWidgetAction class works.
                  Even other widgets like QLineEdits or every other custom widget, that you can put in a QToolBar will work, when you do it like this :)

                  That you can not pass widgets to WidgetAction to stay more flexible, is very unfortunate and I also don't like it, but maybe the other way won't work because of some reason.
                  ... but that is something you should ask the Qt Devs :)

                  ToolBarWidget.png

                  ToolBarMenuSmall.png.png

                  Edit:

                  (BTW: Ubuntu + Qt 5.15)

                  A Offline
                  A Offline
                  Alexey Serebryakov
                  wrote on last edited by Alexey Serebryakov
                  #11

                  @Pl45m4 thank you, my first implementation do the same as your code.

                  So, this another but doesn't work correctly,

                  class ToolBarWidgetAction : public QWidgetAction {
                      Q_OBJECT
                  public:
                      explicit ToolBarWidgetAction(QWidget *widget, QObject *parent) : QWidgetAction(parent), widget_(widget) {}
                      ~ToolBarWidgetAction() Q_DECL_OVERRIDE { widget_->setParent(Q_NULLPTR); }
                  
                      QWidget *createWidget(QWidget *parent) Q_DECL_OVERRIDE {
                              // Create container, put my widget and return container widget
                              QFrame *widget = new QFrame(parent); // just container for my widget
                              widget->setMinimumHeight(32);
                               //widget_->setParent(widget); // ???
                          
                              auto layout = new QHBoxLayout();
                              layout->setContentsMargins(0, 0, 0, 0);
                              layout->setSpacing(0);
                              layout->addWidget(widget_.data());
                              widget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
                              widget->setLayout(layout);
                              widget->show();
                              widget_->show();
                              widget->update();
                  
                              return widget;
                      }
                      void deleteWidget(QWidget *widget) Q_DECL_OVERRIDE {
                          // Reparent my widget and delete container
                          widget_->hide();
                          widget->layout()->removeWidget(widget_.data());
                          widget_->setParent(Q_NULLPTR);
                  
                          QWidgetAction::deleteWidget(widget);
                      }
                  
                  private:
                      const QScopedPointer<QWidget, QScopedPointerDeleteLater> widget_; // store pointer to my widget
                  };
                  
                  // Then use it
                  
                  auto *myWidget = new MyWidget(toolBar); // my original widget
                  toolBar->addAction(new ToolBarWidgetAction(myWidget, toolBar));
                  

                  My widget does not showing on toolbar but correctly showing in popup menu by click extension button.

                  What's wrong?

                  Pl45m4P 1 Reply Last reply
                  0
                  • A Alexey Serebryakov

                    @Pl45m4 thank you, my first implementation do the same as your code.

                    So, this another but doesn't work correctly,

                    class ToolBarWidgetAction : public QWidgetAction {
                        Q_OBJECT
                    public:
                        explicit ToolBarWidgetAction(QWidget *widget, QObject *parent) : QWidgetAction(parent), widget_(widget) {}
                        ~ToolBarWidgetAction() Q_DECL_OVERRIDE { widget_->setParent(Q_NULLPTR); }
                    
                        QWidget *createWidget(QWidget *parent) Q_DECL_OVERRIDE {
                                // Create container, put my widget and return container widget
                                QFrame *widget = new QFrame(parent); // just container for my widget
                                widget->setMinimumHeight(32);
                                 //widget_->setParent(widget); // ???
                            
                                auto layout = new QHBoxLayout();
                                layout->setContentsMargins(0, 0, 0, 0);
                                layout->setSpacing(0);
                                layout->addWidget(widget_.data());
                                widget->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Minimum);
                                widget->setLayout(layout);
                                widget->show();
                                widget_->show();
                                widget->update();
                    
                                return widget;
                        }
                        void deleteWidget(QWidget *widget) Q_DECL_OVERRIDE {
                            // Reparent my widget and delete container
                            widget_->hide();
                            widget->layout()->removeWidget(widget_.data());
                            widget_->setParent(Q_NULLPTR);
                    
                            QWidgetAction::deleteWidget(widget);
                        }
                    
                    private:
                        const QScopedPointer<QWidget, QScopedPointerDeleteLater> widget_; // store pointer to my widget
                    };
                    
                    // Then use it
                    
                    auto *myWidget = new MyWidget(toolBar); // my original widget
                    toolBar->addAction(new ToolBarWidgetAction(myWidget, toolBar));
                    

                    My widget does not showing on toolbar but correctly showing in popup menu by click extension button.

                    What's wrong?

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

                    @Alexey-Serebryakov said in QToolbar resizing:

                    widget->show();
                    widget_->show();
                    widget->update();

                    I think calling show() is wrong and not needed. What kind of widget is your widget_? Maybe try it without the QFrame


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

                    ~E. W. Dijkstra

                    A 1 Reply Last reply
                    0
                    • Pl45m4P Pl45m4

                      @Alexey-Serebryakov said in QToolbar resizing:

                      widget->show();
                      widget_->show();
                      widget->update();

                      I think calling show() is wrong and not needed. What kind of widget is your widget_? Maybe try it without the QFrame

                      A Offline
                      A Offline
                      Alexey Serebryakov
                      wrote on last edited by
                      #13

                      @Pl45m4 There are may be some kind of complex widgets like derived from QWidget or QFrame buttons with comboboxes that might be a different states.

                      1 Reply Last reply
                      0
                      • Pl45m4P Pl45m4 referenced this topic on

                      • Login

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