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 Implement the coding part of this UI Integration?
Forum Updated to NodeBB v4.3 + New Features

How to Implement the coding part of this UI Integration?

Scheduled Pinned Locked Moved Solved General and Desktop
23 Posts 4 Posters 2.3k 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.
  • Aviral 0A Offline
    Aviral 0A Offline
    Aviral 0
    wrote on last edited by
    #1

    Hi all, I have a prebuilt LogDisplay QT Application, and I want to Integrate it into my current QT GUI application.
    I have used stacked widget as the container for the application and using only 1 page of that. Suggest if some another good option other than QStackWidget?

    I have promoted the QStackWidget to LogDisplay class.
    Screenshot 2023-02-20 093242.png

    Please someone tell me the mainwindow coding part to call the logdisplay class in that QStacked widget.

    jsulmJ 1 Reply Last reply
    0
    • Aviral 0A Aviral 0

      @JonB Yeah! Do you have any idea what I am doing wrong here:

      ui->page->setLayout(new QHBoxLayout);
          LogDisplay *logDisplay = new LogDisplay(ui->page);
      
         // ui->stackedWidget->layout()->addWidget(logDisplay);
      
          ui->stackedWidget->addWidget(logDisplay);
          ui->stackedWidget->show();
      
      jsulmJ Offline
      jsulmJ Offline
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #20

      @Aviral-0 said in How to Implement the coding part of this UI Integration?:

      Do you have any idea what I am doing wrong here

      What do you expect this code to do?
      You added a layout to ui->page. Then you added logDisplay as another page. But you wanted to have logDisplay on ui->page, right? Can you please read more carefully? I wrote before:

      // Or, if ui->page has a layout:
      LogDisplay *logDisplay = new LogDisplay();
      ui->page->layout()->addWidget(logDisplay);
      

      So, don't you think your code should be like:

      // Or, if ui->page has a layout:
      LogDisplay *logDisplay = new LogDisplay();
      ui->page->setLayout(new QHBoxLayout);
      ui->page->layout()->addWidget(logDisplay);
      
      Aviral 0A 1 Reply Last reply
      1
      • Aviral 0A Aviral 0

        Hi all, I have a prebuilt LogDisplay QT Application, and I want to Integrate it into my current QT GUI application.
        I have used stacked widget as the container for the application and using only 1 page of that. Suggest if some another good option other than QStackWidget?

        I have promoted the QStackWidget to LogDisplay class.
        Screenshot 2023-02-20 093242.png

        Please someone tell me the mainwindow coding part to call the logdisplay class in that QStacked widget.

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #2

        @Aviral-0 said in How to Implement the coding part of this UI Integration?:

        Suggest if some another good option other than QStackWidget?

        Why?

        "Please someone tell me the mainwindow coding part to call the logdisplay class in that QStacked widget." - what "coding part"? What does "call the logdisplay class" mean?
        Please ask clear questions...

        Aviral 0A 1 Reply Last reply
        0
        • jsulmJ jsulm

          @Aviral-0 said in How to Implement the coding part of this UI Integration?:

          Suggest if some another good option other than QStackWidget?

          Why?

          "Please someone tell me the mainwindow coding part to call the logdisplay class in that QStacked widget." - what "coding part"? What does "call the logdisplay class" mean?
          Please ask clear questions...

          Aviral 0A Offline
          Aviral 0A Offline
          Aviral 0
          wrote on last edited by Aviral 0
          #3

          @jsulm Actually I am trying to add the LogDisplay application integrate with another UI application.
          I have a QWidget which contains QStackedView and Using QstackedView I am displaying LogDisplay class.

          QWidget *widget = new QWidget(this);
              QStackedWidget *stackedWidget = new QStackedWidget(this);
              LogDisplay *logDisplay = new LogDisplay(this);
          
              //stackedWidget->setCurrentWidget(widget);
              widget->setLayout(new QHBoxLayout);
              widget->layout()->addWidget(stackedWidget);
              setCentralWidget(stackedWidget);
                      stackedWidget->addWidget(logDisplay);
                      stackedWidget->show();
          

          But the Logdisplay class is taking the whole screen of application instread of what I am giving the position and size in UI design. How to solve this?
          Here the output I am getting:
          Screenshot 2023-02-20 120313.png
          in Full Screen.
          But I defined the stackedwidget as:
          Screenshot 2023-02-20 120336.png

          jsulmJ 2 Replies Last reply
          0
          • Aviral 0A Aviral 0

            @jsulm Actually I am trying to add the LogDisplay application integrate with another UI application.
            I have a QWidget which contains QStackedView and Using QstackedView I am displaying LogDisplay class.

            QWidget *widget = new QWidget(this);
                QStackedWidget *stackedWidget = new QStackedWidget(this);
                LogDisplay *logDisplay = new LogDisplay(this);
            
                //stackedWidget->setCurrentWidget(widget);
                widget->setLayout(new QHBoxLayout);
                widget->layout()->addWidget(stackedWidget);
                setCentralWidget(stackedWidget);
                        stackedWidget->addWidget(logDisplay);
                        stackedWidget->show();
            

            But the Logdisplay class is taking the whole screen of application instread of what I am giving the position and size in UI design. How to solve this?
            Here the output I am getting:
            Screenshot 2023-02-20 120313.png
            in Full Screen.
            But I defined the stackedwidget as:
            Screenshot 2023-02-20 120336.png

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #4
            This post is deleted!
            1 Reply Last reply
            0
            • Aviral 0A Aviral 0

              @jsulm Actually I am trying to add the LogDisplay application integrate with another UI application.
              I have a QWidget which contains QStackedView and Using QstackedView I am displaying LogDisplay class.

              QWidget *widget = new QWidget(this);
                  QStackedWidget *stackedWidget = new QStackedWidget(this);
                  LogDisplay *logDisplay = new LogDisplay(this);
              
                  //stackedWidget->setCurrentWidget(widget);
                  widget->setLayout(new QHBoxLayout);
                  widget->layout()->addWidget(stackedWidget);
                  setCentralWidget(stackedWidget);
                          stackedWidget->addWidget(logDisplay);
                          stackedWidget->show();
              

              But the Logdisplay class is taking the whole screen of application instread of what I am giving the position and size in UI design. How to solve this?
              Here the output I am getting:
              Screenshot 2023-02-20 120313.png
              in Full Screen.
              But I defined the stackedwidget as:
              Screenshot 2023-02-20 120336.png

              jsulmJ Offline
              jsulmJ Offline
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #5

              @Aviral-0 said in How to Implement the coding part of this UI Integration?:

              But the Logdisplay class is taking the whole screen of application instread of what I am giving the position and size in UI design. How to solve this?

              You are NOT using what you defined in UI! You're adding a NEW QWidget which is then replacing the central widget of your main window! You are also creating a NEW QStackedWidget instead of using the one you added in UI! Why don't you use ui->stackedWidget instead of doing all this?! ui->stackedWidget is the stacked widget you added in your ui...

              Aviral 0A 1 Reply Last reply
              1
              • jsulmJ jsulm

                @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                But the Logdisplay class is taking the whole screen of application instread of what I am giving the position and size in UI design. How to solve this?

                You are NOT using what you defined in UI! You're adding a NEW QWidget which is then replacing the central widget of your main window! You are also creating a NEW QStackedWidget instead of using the one you added in UI! Why don't you use ui->stackedWidget instead of doing all this?! ui->stackedWidget is the stacked widget you added in your ui...

                Aviral 0A Offline
                Aviral 0A Offline
                Aviral 0
                wrote on last edited by
                #6

                @jsulm Can you help me write it up?

                jsulmJ 1 Reply Last reply
                0
                • Aviral 0A Aviral 0

                  @jsulm Can you help me write it up?

                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #7

                  @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                  Can you help me write it up?

                  Write what?
                  Simply use ui->stackedWidget to access your stacked widget, there is no need for the code you posted because you already added a stacked widget in designer...

                  Aviral 0A 1 Reply Last reply
                  0
                  • jsulmJ jsulm

                    @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                    Can you help me write it up?

                    Write what?
                    Simply use ui->stackedWidget to access your stacked widget, there is no need for the code you posted because you already added a stacked widget in designer...

                    Aviral 0A Offline
                    Aviral 0A Offline
                    Aviral 0
                    wrote on last edited by
                    #8

                    @jsulm how to add LogDisplay object in ui->stackedwidget?

                    jsulmJ 1 Reply Last reply
                    0
                    • Aviral 0A Aviral 0

                      @jsulm how to add LogDisplay object in ui->stackedwidget?

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #9

                      @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                      how to add LogDisplay object in ui->stackedwidget?

                      Like shown in documentation: https://doc.qt.io/qt-6/qstackedwidget.html Did you read it?

                      stackedWidget->addWidget(firstPageWidget);
                      

                      Before you ask:

                      LogDisplay *logDisplay = new LogDisplay(this);
                      ui->stackedWidget->addWidget(logDisplay);
                      
                      Aviral 0A 1 Reply Last reply
                      0
                      • jsulmJ jsulm

                        @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                        how to add LogDisplay object in ui->stackedwidget?

                        Like shown in documentation: https://doc.qt.io/qt-6/qstackedwidget.html Did you read it?

                        stackedWidget->addWidget(firstPageWidget);
                        

                        Before you ask:

                        LogDisplay *logDisplay = new LogDisplay(this);
                        ui->stackedWidget->addWidget(logDisplay);
                        
                        Aviral 0A Offline
                        Aviral 0A Offline
                        Aviral 0
                        wrote on last edited by
                        #10

                        @jsulm The Object of Page in StackedWidget is "page" in UI,
                        and I have implemented like this:

                         ui->stackedWidget->addWidget(ui->page);
                            LogDisplay *logDisplay = new LogDisplay(this);
                            ui->stackedWidget->addWidget(logDisplay);
                        

                        Still No Stacked window is shown. Please Help!

                        jsulmJ 1 Reply Last reply
                        0
                        • Aviral 0A Aviral 0

                          @jsulm The Object of Page in StackedWidget is "page" in UI,
                          and I have implemented like this:

                           ui->stackedWidget->addWidget(ui->page);
                              LogDisplay *logDisplay = new LogDisplay(this);
                              ui->stackedWidget->addWidget(logDisplay);
                          

                          Still No Stacked window is shown. Please Help!

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by jsulm
                          #11

                          @Aviral-0 If you want to add your logDisplay to an existing widget in stackedwidget (for whatever reason) then do so:

                          LogDisplay *logDisplay = new LogDisplay(ui->page);
                          // Or, if ui->page has a layout:
                          LogDisplay *logDisplay = new LogDisplay();
                          ui->page->layout()->addWidget(logDisplay);
                          

                          Then please don't call ui->stackedWidget->addWidget(logDisplay)!

                          Aviral 0A 1 Reply Last reply
                          0
                          • jsulmJ jsulm

                            @Aviral-0 If you want to add your logDisplay to an existing widget in stackedwidget (for whatever reason) then do so:

                            LogDisplay *logDisplay = new LogDisplay(ui->page);
                            // Or, if ui->page has a layout:
                            LogDisplay *logDisplay = new LogDisplay();
                            ui->page->layout()->addWidget(logDisplay);
                            

                            Then please don't call ui->stackedWidget->addWidget(logDisplay)!

                            Aviral 0A Offline
                            Aviral 0A Offline
                            Aviral 0
                            wrote on last edited by
                            #12

                            @jsulm Using this:

                            ui->stackedWidget->addWidget(ui->page);
                                LogDisplay *logDisplay = new LogDisplay();
                            
                                ui->page->layout()->addWidget(logDisplay);
                            

                            Application is crashing with both above suggestions.

                            J.HilkJ jsulmJ 2 Replies Last reply
                            0
                            • Aviral 0A Aviral 0

                              @jsulm Using this:

                              ui->stackedWidget->addWidget(ui->page);
                                  LogDisplay *logDisplay = new LogDisplay();
                              
                                  ui->page->layout()->addWidget(logDisplay);
                              

                              Application is crashing with both above suggestions.

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

                              @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                              ui->stackedWidget->addWidget(ui->page);
                              LogDisplay *logDisplay = new LogDisplay();

                              where, for the love of god, did you see this as a suggestion ?


                              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.

                              Aviral 0A 1 Reply Last reply
                              0
                              • Aviral 0A Aviral 0

                                @jsulm Using this:

                                ui->stackedWidget->addWidget(ui->page);
                                    LogDisplay *logDisplay = new LogDisplay();
                                
                                    ui->page->layout()->addWidget(logDisplay);
                                

                                Application is crashing with both above suggestions.

                                jsulmJ Offline
                                jsulmJ Offline
                                jsulm
                                Lifetime Qt Champion
                                wrote on last edited by
                                #14

                                @Aviral-0 Please, I never said you need ui->stackedWidget->addWidget(ui->page)!
                                ui->page was already added to stacked widget in UI! Please think about what you're doing!
                                This should work:

                                LogDisplay *logDisplay = new LogDisplay();
                                ui->page->layout()->addWidget(logDisplay);
                                

                                If it crashes then please first use a debugger to see why. Debugger is really one of the most basic tools of a programmer.

                                Aviral 0A 1 Reply Last reply
                                0
                                • jsulmJ jsulm

                                  @Aviral-0 Please, I never said you need ui->stackedWidget->addWidget(ui->page)!
                                  ui->page was already added to stacked widget in UI! Please think about what you're doing!
                                  This should work:

                                  LogDisplay *logDisplay = new LogDisplay();
                                  ui->page->layout()->addWidget(logDisplay);
                                  

                                  If it crashes then please first use a debugger to see why. Debugger is really one of the most basic tools of a programmer.

                                  Aviral 0A Offline
                                  Aviral 0A Offline
                                  Aviral 0
                                  wrote on last edited by
                                  #15
                                  This post is deleted!
                                  jsulmJ 1 Reply Last reply
                                  0
                                  • J.HilkJ J.Hilk

                                    @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                                    ui->stackedWidget->addWidget(ui->page);
                                    LogDisplay *logDisplay = new LogDisplay();

                                    where, for the love of god, did you see this as a suggestion ?

                                    Aviral 0A Offline
                                    Aviral 0A Offline
                                    Aviral 0
                                    wrote on last edited by
                                    #16

                                    @J-Hilk Hi, I am sorry for some silly questions, I am new to programming job and it doesn't interest me much, but gotta do it for the living. Just to cover my basic needs so that I can do what interests me! Hope you'll understand!

                                    JonBJ 1 Reply Last reply
                                    0
                                    • Aviral 0A Aviral 0

                                      @J-Hilk Hi, I am sorry for some silly questions, I am new to programming job and it doesn't interest me much, but gotta do it for the living. Just to cover my basic needs so that I can do what interests me! Hope you'll understand!

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

                                      @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                                      I am new to programming job and it doesn't interest me much, but gotta do it for the living.

                                      Ummm.....

                                      Just to cover my basic needs so that I can do what interests me!

                                      I don't know how easy it will be to use programming to cover your "basic needs" while you go off doing whatever you actually want to do! Programming is (relatively) hard, it certainly requires some effort to understand what is going on! All the best :)

                                      Aviral 0A 1 Reply Last reply
                                      0
                                      • Aviral 0A Aviral 0

                                        This post is deleted!

                                        jsulmJ Offline
                                        jsulmJ Offline
                                        jsulm
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #18

                                        @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                                        Launches the application but I see no stackedwidget in it.

                                        Probably because ui->page page of your stacked widget is shown and not the other you're adding.
                                        I already told you: if your app crashes use debugger to see why. I guess ui->page has no layout, so ui->page->layout() returns nullptr. Add a layout to it then.

                                        JonBJ 1 Reply Last reply
                                        1
                                        • JonBJ JonB

                                          @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                                          I am new to programming job and it doesn't interest me much, but gotta do it for the living.

                                          Ummm.....

                                          Just to cover my basic needs so that I can do what interests me!

                                          I don't know how easy it will be to use programming to cover your "basic needs" while you go off doing whatever you actually want to do! Programming is (relatively) hard, it certainly requires some effort to understand what is going on! All the best :)

                                          Aviral 0A Offline
                                          Aviral 0A Offline
                                          Aviral 0
                                          wrote on last edited by
                                          #19

                                          @JonB Yeah! Do you have any idea what I am doing wrong here:

                                          ui->page->setLayout(new QHBoxLayout);
                                              LogDisplay *logDisplay = new LogDisplay(ui->page);
                                          
                                             // ui->stackedWidget->layout()->addWidget(logDisplay);
                                          
                                              ui->stackedWidget->addWidget(logDisplay);
                                              ui->stackedWidget->show();
                                          
                                          jsulmJ 1 Reply Last reply
                                          0
                                          • Aviral 0A Aviral 0

                                            @JonB Yeah! Do you have any idea what I am doing wrong here:

                                            ui->page->setLayout(new QHBoxLayout);
                                                LogDisplay *logDisplay = new LogDisplay(ui->page);
                                            
                                               // ui->stackedWidget->layout()->addWidget(logDisplay);
                                            
                                                ui->stackedWidget->addWidget(logDisplay);
                                                ui->stackedWidget->show();
                                            
                                            jsulmJ Offline
                                            jsulmJ Offline
                                            jsulm
                                            Lifetime Qt Champion
                                            wrote on last edited by
                                            #20

                                            @Aviral-0 said in How to Implement the coding part of this UI Integration?:

                                            Do you have any idea what I am doing wrong here

                                            What do you expect this code to do?
                                            You added a layout to ui->page. Then you added logDisplay as another page. But you wanted to have logDisplay on ui->page, right? Can you please read more carefully? I wrote before:

                                            // Or, if ui->page has a layout:
                                            LogDisplay *logDisplay = new LogDisplay();
                                            ui->page->layout()->addWidget(logDisplay);
                                            

                                            So, don't you think your code should be like:

                                            // Or, if ui->page has a layout:
                                            LogDisplay *logDisplay = new LogDisplay();
                                            ui->page->setLayout(new QHBoxLayout);
                                            ui->page->layout()->addWidget(logDisplay);
                                            
                                            Aviral 0A 1 Reply Last reply
                                            1

                                            • Login

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