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. SOLVED What signal to react on when QTabWidget is first displayed?

SOLVED What signal to react on when QTabWidget is first displayed?

Scheduled Pinned Locked Moved Unsolved General and Desktop
11 Posts 4 Posters 1.0k 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 Anonymous_Banned275

    As a result of MDI menu selection I run QTabWidget.
    I would like to process default tab without user interaction.
    Is there a signal I can detect such as "default tab activated " ?
    I can probably figure out how to detect the MDI signal, but do not see how to detect "default tab" activated".

    2ec9089d-5159-4a66-ae8b-6baa0d924ecc-image.png

    JonBJ Offline
    JonBJ Offline
    JonB
    wrote on last edited by
    #2

    @AnneRanch
    Usually when user clicks on tab you get currentChanged(int) signal, so that would be first thought. However, I am not sure whether you get this when QTabWidget shown for the first time, I don't know whether that generates a "tab changed" or not. So try on currentChanged and come back if that does not work?

    1 Reply Last reply
    1
    • A Offline
      A Offline
      Anonymous_Banned275
      wrote on last edited by
      #3

      @JonB said in What signal to react on when QTabWidget is first displayed?:

      currentChanged(int)
      Yes, that is emitted when tab is changed using mouse.
      I 'll looking into MDI signals.

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

        Hi,

        There's no such signal. That's typically a use case that you need to implement yourself.

        Can you describe what exactly you do with that menu and how it is related to the QTabWidget ?

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

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Anonymous_Banned275
          wrote on last edited by
          #5

          Here is the menu code creating the form.

          I think one way to create "signal" could be
          FW->activateWindow();

          I am working in that...

          Definitely not "out of the box" process..,
          The task is to at least fill ONE widget in the default tab.

          I have it working manually - using button push.
          The idea is to automate it when the default tab is activated.
          I know I can option which tab will be set as default - maybe I can use that...

          
          
          
          void MainWindow::Run_HCI(void)
          {
              qDebug() << "\nTASK     : " << "\nCreate START child as QMdiSubWindow \n" <<
                          "\nFile     : " << (__FILE__) <<
                          "\nFunction : " << (__FUNCTION__) <<
                          "\n@line    : " <<(__LINE__);
          
              //MdiChild_ORIGINAL *child = createMdiChild();
              //child->show();
              // duplicate Form_Widget Nov 3 did noit work - need build from scrach
               // Form_Widget *FW = new Form_Widget();
          
          Form_Widget_HCI *FW = new Form_Widget_HCI();
          //FW->ui.
          //FW->activateWindow();
          
              QRect dimensions = FW->geometry();
              int x = dimensions.height();
              int y = dimensions.width();
              //HERE
              //int start_X = dimensions.x2;
              //QMdiArea mdiArea; reusing child
              QMdiSubWindow *child = new QMdiSubWindow(FW);
              //subWindow1->setWidget(internalWidget1);
              child->setAttribute(Qt::WA_DeleteOnClose);
              child->setWindowTitle(__FILE__);
              // add to main area
              mdiArea->addSubWindow(child);
              // adjust subwindow size to display just TAB   plus someting
              //QRect dimensions = FW->geometry();
              // void QRect::getCoords(int *x1, int *y1, int *x2, int *y2) const
              //QPoint QRect::bottomRight() const
          
          #ifdef BYPASS
          
              @AnneRanch
          
                      void QRect::getCoords(int *x1, int *y1, int *x2, int *y2) const
          
                      QPoint QRect::bottomRight() const
                      &
                      int QPoint::x() const
          
          
          #endif
          
                      //    QString height = FW->tab_height.toNumber();
                      //   qDebug(height);
          
          
                      // Temp MN QTTab
                      //    child->setFixedHeight(1000);
                      //    child->setFixedHeight(1000);
                      //   QRect dimensions = FW->geometry();
                      //   int start_X = dimensions.x2;
          
          
                      int test = FW->tab_height/20000/100;
              child->setFixedHeight(test ); // FW->tab_height/20000);
              child->setFixedHeight(x -100 ); //display outside TAB (?)
              child->setFixedWidth(y) ;
              // activate widget
              child->setWidget(FW);
              child->showNormal();
          
              qDebug() << "\nTASK     : " << "\nCreate END child as QMdiSubWindow \n" <<
                          "\nFile     : " << (__FILE__) <<
                          "\nFunction : " << (__FUNCTION__) <<
                          "\n@line    : " <<(__LINE__);
          
          
          
          }
          
          
          
          
          
          
          
          
          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #6

            @AnneRanch said in What signal to react on when QTabWidget is first displayed?:

            Form_Widget_HCI

            Is that the widget you are talking about ?
            What kind of initialisation do you want to do ?

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

            1 Reply Last reply
            0
            • JoeCFDJ Offline
              JoeCFDJ Offline
              JoeCFD
              wrote on last edited by
              #7

              override the following func.
              protected:
              void showEvent(QShowEvent *) override;

              inside this func, you can query current tab index.

              A 1 Reply Last reply
              0
              • A Offline
                A Offline
                Anonymous_Banned275
                wrote on last edited by
                #8

                I have a combo box in default tab and like to "fill it" from a text file.

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

                  Why not do that in the constructor of that widget ?

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

                  A 1 Reply Last reply
                  1
                  • SGaistS SGaist

                    Why not do that in the constructor of that widget ?

                    A Offline
                    A Offline
                    Anonymous_Banned275
                    wrote on last edited by
                    #10

                    @SGaist said in What signal to react on when QTabWidget is first displayed?:

                    Why not do that in the constructor of that widget ?

                    SOLVED
                    Purfect, you get a gold star....

                    1 Reply Last reply
                    0
                    • JoeCFDJ JoeCFD

                      override the following func.
                      protected:
                      void showEvent(QShowEvent *) override;

                      inside this func, you can query current tab index.

                      A Offline
                      A Offline
                      Anonymous_Banned275
                      wrote on last edited by
                      #11

                      @JoeCFD said in What signal to react on when QTabWidget is first displayed?:

                      override the following func.
                      protected:
                      void showEvent(QShowEvent *) override;

                      inside this func, you can query current tab index.

                      Maybe I can modify this to solve my other issue.
                      Thanks

                      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