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. gui not showing, or closing to fast to see
Forum Updated to NodeBB v4.3 + New Features

gui not showing, or closing to fast to see

Scheduled Pinned Locked Moved Solved General and Desktop
40 Posts 6 Posters 5.9k Views 3 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.
  • JonBJ JonB

    @micha_eleric said in gui not showing, or closing to fast to see:

    had no output, and std::cout << "name";, not doing anything.

    Perhaps std::flush() or std::endl to flush, else you won't get it if you crash later on?

    however, i did find the line that was crashing the program.

    And what was that then?

    M Offline
    M Offline
    micha_eleric
    wrote on last edited by
    #16

    @JonB said in gui not showing, or closing to fast to see:

    @micha_eleric said in gui not showing, or closing to fast to see:

    however, i did find the line that was crashing the program.

    And what was that then?

    //ui->pushButton_22->connect(ui->pushButton_22, SIGNAL(clicked()),this, SLOT(CGUI::Btn_test_clicked()) );  //?? old qt4
    ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
    

    CGUI::Btn_test_clicked exist
    i tried inclosing in a try catch block, but still crashes

    Pl45m4P 1 Reply Last reply
    0
    • M micha_eleric

      @JonB said in gui not showing, or closing to fast to see:

      @micha_eleric said in gui not showing, or closing to fast to see:

      however, i did find the line that was crashing the program.

      And what was that then?

      //ui->pushButton_22->connect(ui->pushButton_22, SIGNAL(clicked()),this, SLOT(CGUI::Btn_test_clicked()) );  //?? old qt4
      ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
      

      CGUI::Btn_test_clicked exist
      i tried inclosing in a try catch block, but still crashes

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

      @micha_eleric

      Remove everything on the left before connect


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

      ~E. W. Dijkstra

      M 1 Reply Last reply
      0
      • Pl45m4P Pl45m4

        @micha_eleric

        Remove everything on the left before connect

        M Offline
        M Offline
        micha_eleric
        wrote on last edited by
        #18

        @Pl45m4 said in gui not showing, or closing to fast to see:

        @micha_eleric

        Remove everything on the left before connect

        well, now that i added a few \n at end of some std::cout, that line is not crashing, but something else is. it was running in regular run, with that commented out.

        that format was working on other buttons.
        why remove "ui->pushButton_22->"?

        1 Reply Last reply
        0
        • M Offline
          M Offline
          micha_eleric
          wrote on last edited by micha_eleric
          #19

          ok. this makes no sense
          in the constructor

          InitTestBoard();
          std::cout << "constructor InitTestBoard finished \n" << std::flush;
          
              void CGUI::InitTestBoard()
              {
                  std::cout << "InitTestBoard \n" << std::flush;
                  try
                  {
                      std::cout << "InitTestBoard try begin \n" << std::flush;
                      //?? test arduino board leds
                      //ui->pushButton_22->connect(ui->pushButton_22, SIGNAL(clicked()),this, SLOT(CGUI::Btn_test_clicked()) );  //?? old qt4
                      ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
          
                      std::cout << "InitTestBoard try 2 \n" << std::flush;
                      //?? Test Board/Motor wiring
                      ui->textEdit_34->setFixedSize(30,  30);
                      ui->textEdit_35->setFixedSize(30,  30);
                      ui->textEdit_35->setFixedSize(30,  30);
                      ui->textEdit_36->setFixedSize(30,  30);
                      ui->textEdit_37->setFixedSize(30,  30);
                      ui->textEdit_38->setFixedSize(30,  30);
          
                      std::cout << "InitTestBoard try 3 \n" << std::flush;
                      ui->textEdit_40->setFixedSize(30,  30);
                      ui->textEdit_41->setFixedSize(30,  30);
                      ui->textEdit_42->setFixedSize(30,  30);
                      ui->textEdit_43->setFixedSize(30,  30);
                      ui->textEdit_44->setFixedSize(30,  30);
                      ui->textEdit_45->setFixedSize(30,  30);
                      std::cout << "InitTestBoard try end \n" << std::flush;
                  }
                  catch(std::exception& e)
                  {
                      std::cout << "InitTestBoard catch begin \n" << std::flush;
                      std::cout << e.what() << std::flush;
                      MessageBoxError("InitTestBoard");
                      std::cout << e.what()<< std::flush;
                  }
              }
          

          console output

          __name__
          InitTestBoard 
          InitTestBoard try begin 
          InitTestBoard try 2 
          InitTestBoard try 3 
          Press <RETURN> to close this window...
          

          it is crashing at end of try{}?
          crashing in a try{}, but not getting caught?


          well, now, if i comment out

          ui->textEdit_40->setFixedSize(30,  30);
          ui->textEdit_41->setFixedSize(30,  30);
          

          it does not crash on start

          JonBJ 1 Reply Last reply
          0
          • M micha_eleric

            ok. this makes no sense
            in the constructor

            InitTestBoard();
            std::cout << "constructor InitTestBoard finished \n" << std::flush;
            
                void CGUI::InitTestBoard()
                {
                    std::cout << "InitTestBoard \n" << std::flush;
                    try
                    {
                        std::cout << "InitTestBoard try begin \n" << std::flush;
                        //?? test arduino board leds
                        //ui->pushButton_22->connect(ui->pushButton_22, SIGNAL(clicked()),this, SLOT(CGUI::Btn_test_clicked()) );  //?? old qt4
                        ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
            
                        std::cout << "InitTestBoard try 2 \n" << std::flush;
                        //?? Test Board/Motor wiring
                        ui->textEdit_34->setFixedSize(30,  30);
                        ui->textEdit_35->setFixedSize(30,  30);
                        ui->textEdit_35->setFixedSize(30,  30);
                        ui->textEdit_36->setFixedSize(30,  30);
                        ui->textEdit_37->setFixedSize(30,  30);
                        ui->textEdit_38->setFixedSize(30,  30);
            
                        std::cout << "InitTestBoard try 3 \n" << std::flush;
                        ui->textEdit_40->setFixedSize(30,  30);
                        ui->textEdit_41->setFixedSize(30,  30);
                        ui->textEdit_42->setFixedSize(30,  30);
                        ui->textEdit_43->setFixedSize(30,  30);
                        ui->textEdit_44->setFixedSize(30,  30);
                        ui->textEdit_45->setFixedSize(30,  30);
                        std::cout << "InitTestBoard try end \n" << std::flush;
                    }
                    catch(std::exception& e)
                    {
                        std::cout << "InitTestBoard catch begin \n" << std::flush;
                        std::cout << e.what() << std::flush;
                        MessageBoxError("InitTestBoard");
                        std::cout << e.what()<< std::flush;
                    }
                }
            

            console output

            __name__
            InitTestBoard 
            InitTestBoard try begin 
            InitTestBoard try 2 
            InitTestBoard try 3 
            Press <RETURN> to close this window...
            

            it is crashing at end of try{}?
            crashing in a try{}, but not getting caught?


            well, now, if i comment out

            ui->textEdit_40->setFixedSize(30,  30);
            ui->textEdit_41->setFixedSize(30,  30);
            

            it does not crash on start

            JonBJ Online
            JonBJ Online
            JonB
            wrote on last edited by JonB
            #20

            @micha_eleric
            You have several things wrong. Whether they cause the crash I don't know, but let's start by sorting them out....

            Remove your try ... catch. Qt does not throw C++ exceptions, and if you have a coding error/"crash" it won't catch it anyway.

            ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked); //?? new qt5

            @Pl45m4 already said this is wrong. You want:

            connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
            

            Before

            ui->textEdit_40->setFixedSize(30,  30);
            ui->textEdit_41->setFixedSize(30,  30);
            

            let's put in something like:

            qDebug() << ui->textEdit_40 << ui->textEdit_41;
            // if previous line not acceptable to compiler remove it
            qDebug() << ui->textEdit_40->objectName() << ui->textEdit_41->objectName();
            

            If either of these "crash"/"go wrong", narrow down to textEdit_40 vs textEdit_41 one at a time. Is it because of just one of them, not the other? Or, does accessing either of them cause the problem?

            At one point you said a SIGSTOP was reported. Now you talk about "crashing", or just exiting. In any case, are you compiling for debug and running inside the debugger? Does the debugger catch anything/stop/report anything when your code goes wrong or exits?

            M 2 Replies Last reply
            4
            • JonBJ JonB

              @micha_eleric
              You have several things wrong. Whether they cause the crash I don't know, but let's start by sorting them out....

              Remove your try ... catch. Qt does not throw C++ exceptions, and if you have a coding error/"crash" it won't catch it anyway.

              ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked); //?? new qt5

              @Pl45m4 already said this is wrong. You want:

              connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
              

              Before

              ui->textEdit_40->setFixedSize(30,  30);
              ui->textEdit_41->setFixedSize(30,  30);
              

              let's put in something like:

              qDebug() << ui->textEdit_40 << ui->textEdit_41;
              // if previous line not acceptable to compiler remove it
              qDebug() << ui->textEdit_40->objectName() << ui->textEdit_41->objectName();
              

              If either of these "crash"/"go wrong", narrow down to textEdit_40 vs textEdit_41 one at a time. Is it because of just one of them, not the other? Or, does accessing either of them cause the problem?

              At one point you said a SIGSTOP was reported. Now you talk about "crashing", or just exiting. In any case, are you compiling for debug and running inside the debugger? Does the debugger catch anything/stop/report anything when your code goes wrong or exits?

              M Offline
              M Offline
              micha_eleric
              wrote on last edited by
              #21

              @JonB both

              ui->textEdit_40->setFixedSize(30,  30);
              ui->textEdit_41->setFixedSize(30,  30);
              

              cause problems. comment out the first, second one crashes. comment out both, it runs.

              JonBJ 1 Reply Last reply
              0
              • M micha_eleric

                @JonB both

                ui->textEdit_40->setFixedSize(30,  30);
                ui->textEdit_41->setFixedSize(30,  30);
                

                cause problems. comment out the first, second one crashes. comment out both, it runs.

                JonBJ Online
                JonBJ Online
                JonB
                wrote on last edited by
                #22

                @micha_eleric And the rest of the things I suggested you try?

                M 1 Reply Last reply
                0
                • JonBJ JonB

                  @micha_eleric And the rest of the things I suggested you try?

                  M Offline
                  M Offline
                  micha_eleric
                  wrote on last edited by
                  #23

                  @JonB

                  qDebug() << ui->textEdit_40->objectName() << ui->textEdit_41->objectName();
                  qDebug() << ui->textEdit_40->objectName();
                  qDebug() << ui->textEdit_41->objectName();
                  

                  all caused crash, no messages, that i found

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

                    Hi,

                    Is ui initialized properly ?

                    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
                    • M micha_eleric

                      @JonB

                      qDebug() << ui->textEdit_40->objectName() << ui->textEdit_41->objectName();
                      qDebug() << ui->textEdit_40->objectName();
                      qDebug() << ui->textEdit_41->objectName();
                      

                      all caused crash, no messages, that i found

                      JonBJ Online
                      JonBJ Online
                      JonB
                      wrote on last edited by
                      #25

                      @micha_eleric
                      So it looks like you have a problem with those two textEdit pointers? Btw you have done a clean rebuild, so the uic has been run on the latest .ui file? You have initialised the ui prior to this code?

                      M JonBJ 2 Replies Last reply
                      0
                      • JonBJ JonB

                        @micha_eleric
                        You have several things wrong. Whether they cause the crash I don't know, but let's start by sorting them out....

                        Remove your try ... catch. Qt does not throw C++ exceptions, and if you have a coding error/"crash" it won't catch it anyway.

                        ui->pushButton_22->connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked); //?? new qt5

                        @Pl45m4 already said this is wrong. You want:

                        connect(ui->pushButton_22, &QPushButton::clicked, this, &CGUI::Btn_test_clicked);    //?? new qt5
                        

                        Before

                        ui->textEdit_40->setFixedSize(30,  30);
                        ui->textEdit_41->setFixedSize(30,  30);
                        

                        let's put in something like:

                        qDebug() << ui->textEdit_40 << ui->textEdit_41;
                        // if previous line not acceptable to compiler remove it
                        qDebug() << ui->textEdit_40->objectName() << ui->textEdit_41->objectName();
                        

                        If either of these "crash"/"go wrong", narrow down to textEdit_40 vs textEdit_41 one at a time. Is it because of just one of them, not the other? Or, does accessing either of them cause the problem?

                        At one point you said a SIGSTOP was reported. Now you talk about "crashing", or just exiting. In any case, are you compiling for debug and running inside the debugger? Does the debugger catch anything/stop/report anything when your code goes wrong or exits?

                        M Offline
                        M Offline
                        micha_eleric
                        wrote on last edited by
                        #26

                        @JonB said in gui not showing, or closing to fast to see:

                        At one point you said a SIGSTOP was reported. Now you talk about "crashing", or just exiting. In any case, are you compiling for debug and running inside the debugger? Does the debugger catch anything/stop/report anything when your code goes wrong or exits?

                        if i dont compile for debug, it runs, till i get to code that crashes. compile debug, and it crashes before getting to error code, and tells me nothing about where.

                        1 Reply Last reply
                        0
                        • JonBJ JonB

                          @micha_eleric
                          So it looks like you have a problem with those two textEdit pointers? Btw you have done a clean rebuild, so the uic has been run on the latest .ui file? You have initialised the ui prior to this code?

                          M Offline
                          M Offline
                          micha_eleric
                          wrote on last edited by micha_eleric
                          #27

                          @JonB said in gui not showing, or closing to fast to see:

                          @micha_eleric
                          So it looks like you have a problem with those two textEdit pointers? Btw you have done a clean rebuild, so the uic has been run on the latest .ui file? You have initialised the ui prior to this code?

                          actually, i am using a .h file. just saw yesterday, that i could not open it with qt 5 designer, and qt 5 designer saves in .ui

                          most other text boxes and buttons run fine.
                          code in .h file for text boxes and buttons, look like copy/paste except numbers change.
                          dont know how to convert .h to .ui, or how to open .h with qt 5 designer. the qt designer i used before was much easier to design with.

                          JonBJ 1 Reply Last reply
                          0
                          • M micha_eleric

                            @JonB said in gui not showing, or closing to fast to see:

                            @micha_eleric
                            So it looks like you have a problem with those two textEdit pointers? Btw you have done a clean rebuild, so the uic has been run on the latest .ui file? You have initialised the ui prior to this code?

                            actually, i am using a .h file. just saw yesterday, that i could not open it with qt 5 designer, and qt 5 designer saves in .ui

                            most other text boxes and buttons run fine.
                            code in .h file for text boxes and buttons, look like copy/paste except numbers change.
                            dont know how to convert .h to .ui, or how to open .h with qt 5 designer. the qt designer i used before was much easier to design with.

                            JonBJ Online
                            JonBJ Online
                            JonB
                            wrote on last edited by
                            #28

                            @micha_eleric
                            I happen to notice that after ui->textEdit_38 ui->textEdit_39 is absent, then you say it goes wrong at ui->textEdit_40. Don't know what you want 40+ text edits for, but anyway why not delete all after ui->textEdit_38, make sure it works at that point. Then add the further ones in and see how it goes.

                            M 2 Replies Last reply
                            0
                            • JonBJ JonB

                              @micha_eleric
                              I happen to notice that after ui->textEdit_38 ui->textEdit_39 is absent, then you say it goes wrong at ui->textEdit_40. Don't know what you want 40+ text edits for, but anyway why not delete all after ui->textEdit_38, make sure it works at that point. Then add the further ones in and see how it goes.

                              M Offline
                              M Offline
                              micha_eleric
                              wrote on last edited by
                              #29

                              @JonB said in gui not showing, or closing to fast to see:

                              @micha_eleric
                              I happen to notice that after ui->textEdit_38 ui->textEdit_39 is absent, then you say it goes wrong at ui->textEdit_40. Don't know what you want 40+ text edits for, but anyway why not delete all after ui->textEdit_38, make sure it works at that point. Then add the further ones in and see how it goes.

                              yah. not sure about that.
                              did find 39,40, and 41 cause a crash in another part that call those three, but not the other text boxes.

                              1 Reply Last reply
                              0
                              • JonBJ JonB

                                @micha_eleric
                                I happen to notice that after ui->textEdit_38 ui->textEdit_39 is absent, then you say it goes wrong at ui->textEdit_40. Don't know what you want 40+ text edits for, but anyway why not delete all after ui->textEdit_38, make sure it works at that point. Then add the further ones in and see how it goes.

                                M Offline
                                M Offline
                                micha_eleric
                                wrote on last edited by
                                #30

                                @JonB said in gui not showing, or closing to fast to see:

                                @micha_eleric
                                I happen to notice that after ui->textEdit_38 ui->textEdit_39 is absent, then you say it goes wrong at ui->textEdit_40. Don't know what you want 40+ text edits for, but anyway why not delete all after ui->textEdit_38, make sure it works at that point. Then add the further ones in and see how it goes.
                                runs fine

                                           std::cout << "InitTestBoard try 3 \n" << std::flush;
                                         //   ui->textEdit_40->setFixedSize(30,  30);
                                         //   ui->textEdit_41->setFixedSize(30,  30);
                                            ui->textEdit_42->setFixedSize(30,  30);
                                            ui->textEdit_43->setFixedSize(30,  30);
                                            ui->textEdit_44->setFixedSize(30,  30);
                                            ui->textEdit_45->setFixedSize(30,  30);
                                            std::cout << "InitTestBoard try end \n" << std::flush;
                                

                                crashes

                                            std::cout << "InitTestBoard try 3 \n" << std::flush;
                                            ui->textEdit_40->setFixedSize(30,  30);
                                            ui->textEdit_41->setFixedSize(30,  30);
                                            ui->textEdit_42->setFixedSize(30,  30);
                                            ui->textEdit_43->setFixedSize(30,  30);
                                            ui->textEdit_44->setFixedSize(30,  30);
                                            ui->textEdit_45->setFixedSize(30,  30);
                                            std::cout << "InitTestBoard try end \n" << std::flush;
                                
                                1 Reply Last reply
                                0
                                • M Offline
                                  M Offline
                                  micha_eleric
                                  wrote on last edited by
                                  #31

                                  found it
                                  in CUi_MainWindow.h [the file that has gui layout] file 39, 40, and 41 are different

                                  1 Reply Last reply
                                  0
                                  • JonBJ JonB

                                    @micha_eleric
                                    So it looks like you have a problem with those two textEdit pointers? Btw you have done a clean rebuild, so the uic has been run on the latest .ui file? You have initialised the ui prior to this code?

                                    JonBJ Online
                                    JonBJ Online
                                    JonB
                                    wrote on last edited by JonB
                                    #32

                                    @JonB said in gui not showing, or closing to fast to see:

                                    Btw you have done a clean rebuild, so the uic has been run on the latest .ui file?

                                    @micha_eleric
                                    Do a complete project rebuild/make some change in Designer to update the .ui file and force uic to run on it again. ui_MainWindow.h is a generated file; don't change it yourself, it will get overwritten.

                                    M 1 Reply Last reply
                                    1
                                    • JonBJ JonB

                                      @JonB said in gui not showing, or closing to fast to see:

                                      Btw you have done a clean rebuild, so the uic has been run on the latest .ui file?

                                      @micha_eleric
                                      Do a complete project rebuild/make some change in Designer to update the .ui file and force uic to run on it again. ui_MainWindow.h is a generated file; don't change it yourself, it will get overwritten.

                                      M Offline
                                      M Offline
                                      micha_eleric
                                      wrote on last edited by
                                      #33

                                      @JonB not sure where to ui or uic files are. if i still have them

                                      Pl45m4P 1 Reply Last reply
                                      0
                                      • M micha_eleric

                                        @JonB not sure where to ui or uic files are. if i still have them

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

                                        @micha_eleric

                                        uic is the User Interface Compiler, which does exactly what you've mentioned before.. creates an usable header from your *.ui design template...
                                        And every time you re-run it, your header file will be created or updated... so it makes no sense to edit the file yourself and change some object names


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

                                        ~E. W. Dijkstra

                                        M 1 Reply Last reply
                                        0
                                        • Pl45m4P Pl45m4

                                          @micha_eleric

                                          uic is the User Interface Compiler, which does exactly what you've mentioned before.. creates an usable header from your *.ui design template...
                                          And every time you re-run it, your header file will be created or updated... so it makes no sense to edit the file yourself and change some object names

                                          M Offline
                                          M Offline
                                          micha_eleric
                                          wrote on last edited by
                                          #35

                                          @Pl45m4 just found the .iu file.
                                          trying to remember what i did 4 years ago

                                          JonBJ 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