Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
qtws26_logo

The Qt Event of the Year: Qt World Summit 2026

Save Your Spot >
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. QPushButton set checked causes program to crash
Qt 6.12 LTS is out! See what's new in the release blog

QPushButton set checked causes program to crash

Scheduled Pinned Locked Moved Unsolved General and Desktop
19 Posts 2 Posters 5.7k Views 1 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.
  • mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #2

    I think you made infinite loop.
    set breakpoint in on_button1_clicked
    and see if its called over and over

    1 Reply Last reply
    0
    • Q Offline
      Q Offline
      Qtstarter121
      wrote on last edited by
      #3

      Nope no loop there. My slot isn't even called once.

      mrjjM 1 Reply Last reply
      0
      • Q Qtstarter121

        Nope no loop there. My slot isn't even called once.

        mrjjM Offline
        mrjjM Offline
        mrjj
        Lifetime Qt Champion
        wrote on last edited by
        #4

        @Qtstarter121
        ok, try single step and see what lines it crashes in

        1 Reply Last reply
        0
        • mrjjM Offline
          mrjjM Offline
          mrjj
          Lifetime Qt Champion
          wrote on last edited by
          #5

          Also make sure u didnt do the classic

          QPushButton *cButton = new QPushButton; // local, not class member in .h
          and then later
          cButton->setChecked(true); // the one from .h that is just dangling pointer

          Q 1 Reply Last reply
          0
          • Q Offline
            Q Offline
            Qtstarter121
            wrote on last edited by
            #6

            Unfortunately I can't single step because I don't even have time to attach a debugger. My program crashes within seconds of launching. I was hoping to get maybe some possible reasons for what I could have done wrong.

            1 Reply Last reply
            0
            • mrjjM mrjj

              Also make sure u didnt do the classic

              QPushButton *cButton = new QPushButton; // local, not class member in .h
              and then later
              cButton->setChecked(true); // the one from .h that is just dangling pointer

              Q Offline
              Q Offline
              Qtstarter121
              wrote on last edited by
              #7

              @mrjj I actually had this beforehand where it was a local variable but it is a class pointer in my code right now.

              mrjjM 1 Reply Last reply
              0
              • Q Qtstarter121

                @mrjj I actually had this beforehand where it was a local variable but it is a class pointer in my code right now.

                mrjjM Offline
                mrjjM Offline
                mrjj
                Lifetime Qt Champion
                wrote on last edited by mrjj
                #8

                @Qtstarter121
                Ok, i cant guess. But i promise you it wont crash from setChecked
                so its an actual code bug.

                Without debugger life will be really hard.

                what do u do in on_button1_clicked ?

                Q 1 Reply Last reply
                0
                • mrjjM mrjj

                  @Qtstarter121
                  Ok, i cant guess. But i promise you it wont crash from setChecked
                  so its an actual code bug.

                  Without debugger life will be really hard.

                  what do u do in on_button1_clicked ?

                  Q Offline
                  Q Offline
                  Qtstarter121
                  wrote on last edited by Qtstarter121
                  #9

                  @mrjj Fair enough. I agree actually that setChecked shouldn't be my issue and that it's likely something else I've done. I'm not sure if it's worth mentioning, but prior to my new button initialization and slot connection, I do the following:

                  QMetaObject::connectSlotsByName(this);
                  

                  and I see this in my output log : No matching signal for on_button1_clicked()

                  To answer your question, my slot currently does this:

                  void MyClass:on_button1_clicked(bool checked)
                  {
                     if (checked)
                        cButton->setText("ENABLED");
                     else
                        cButton->setText("DISABLED");
                  
                     SetWidgetProperty(dynamic_cast<QWidget*>(cButton), "highlighted", checked);
                  
                  }
                  
                  1 Reply Last reply
                  0
                  • mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    hi
                    do
                    SetWidgetProperty
                    called setChecked ?
                    if that triggers clicked(bool) u get infinite calls.

                    Q 1 Reply Last reply
                    0
                    • mrjjM mrjj

                      hi
                      do
                      SetWidgetProperty
                      called setChecked ?
                      if that triggers clicked(bool) u get infinite calls.

                      Q Offline
                      Q Offline
                      Qtstarter121
                      wrote on last edited by
                      #11

                      @mrjj The thing is, If I do this:

                       cButton->setChecked(true);
                      //on_button1_clicked(true); 
                      

                      I still get the same crash. Which tells me on_button1_clicked(bool) is irrelevant. Right?

                      mrjjM 1 Reply Last reply
                      0
                      • Q Qtstarter121

                        @mrjj The thing is, If I do this:

                         cButton->setChecked(true);
                        //on_button1_clicked(true); 
                        

                        I still get the same crash. Which tells me on_button1_clicked(bool) is irrelevant. Right?

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #12

                        @Qtstarter121
                        yeah, seems so.
                        so it seems to crash on ?
                        cButton->setChecked(true);
                        since you dont have debugger
                        use qDebug

                        qDebug() << "before";
                        cButton->setChecked(true);
                        qDebug() << "after";

                        to fidn WHAT makes it crash

                        1 Reply Last reply
                        0
                        • Q Offline
                          Q Offline
                          Qtstarter121
                          wrote on last edited by
                          #13

                          Hold on I might be wrong about that. Let me try something and get back to you.

                          mrjjM 1 Reply Last reply
                          0
                          • Q Qtstarter121

                            Hold on I might be wrong about that. Let me try something and get back to you.

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by
                            #14

                            @Qtstarter121
                            You really should install debugger. :)
                            Its ment to find stuff like this :)

                            Q 1 Reply Last reply
                            1
                            • Q Offline
                              Q Offline
                              Qtstarter121
                              wrote on last edited by
                              #15

                              Okay so it looks like i am having an off-day because I just found out the source of my problem.
                              Turns out the issue was with code in the slot ( not Qt stuff but c++ using a proprietary framework) I neglected to post which was using an uninitialized variable. facepalm

                              I neglected to include it because I wrongly assumed the code wasn't relevant.

                              Sorry for wasting your time and thanks for the help.

                              1 Reply Last reply
                              0
                              • mrjjM mrjj

                                @Qtstarter121
                                You really should install debugger. :)
                                Its ment to find stuff like this :)

                                Q Offline
                                Q Offline
                                Qtstarter121
                                wrote on last edited by
                                #16

                                @mrjj I actually do have a debugger available and installed. The problem is that the way my program is launched, i'm not sure how I can run it with gdb. if I attempt a command such as " gdb < my usual program launch command>
                                I get an error like this: not in executable format: File format not recognized

                                However I can attach a debugger once my process is running via gdb attach < pid > but in this case the issue was in my constructor so that would run immediately and no time to attach the debugger to catch the crash issue so print statements are my only option.

                                mrjjM 1 Reply Last reply
                                0
                                • Q Qtstarter121

                                  @mrjj I actually do have a debugger available and installed. The problem is that the way my program is launched, i'm not sure how I can run it with gdb. if I attempt a command such as " gdb < my usual program launch command>
                                  I get an error like this: not in executable format: File format not recognized

                                  However I can attach a debugger once my process is running via gdb attach < pid > but in this case the issue was in my constructor so that would run immediately and no time to attach the debugger to catch the crash issue so print statements are my only option.

                                  mrjjM Offline
                                  mrjjM Offline
                                  mrjj
                                  Lifetime Qt Champion
                                  wrote on last edited by
                                  #17

                                  @Qtstarter121
                                  You are not using Creator?

                                  Q 1 Reply Last reply
                                  0
                                  • mrjjM mrjj

                                    @Qtstarter121
                                    You are not using Creator?

                                    Q Offline
                                    Q Offline
                                    Qtstarter121
                                    wrote on last edited by
                                    #18

                                    @mrjj nope, gdb.

                                    mrjjM 1 Reply Last reply
                                    0
                                    • Q Qtstarter121

                                      @mrjj nope, gdb.

                                      mrjjM Offline
                                      mrjjM Offline
                                      mrjj
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #19

                                      @Qtstarter121
                                      Ok so you compile outside of Creator and not using the dgb integration ?

                                      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
                                      • Unsolved