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. QPushButton set checked causes program to crash
Forum Updated to NodeBB v4.3 + New Features

QPushButton set checked causes program to crash

Scheduled Pinned Locked Moved Unsolved General and Desktop
19 Posts 2 Posters 3.5k 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 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 Extensions
                            • Unsolved