Unsolved QPushButton set checked causes program to crash
-
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.
-
@mrjj I actually had this beforehand where it was a local variable but it is a class pointer in my code right now.
-
@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 ?
-
@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); }
-
hi
do
SetWidgetProperty
called setChecked ?
if that triggers clicked(bool) u get infinite calls. -
@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?
-
@Qtstarter121
yeah, seems so.
so it seems to crash on ?
cButton->setChecked(true);
since you dont have debugger
use qDebugqDebug() << "before";
cButton->setChecked(true);
qDebug() << "after";to fidn WHAT makes it crash
-
Hold on I might be wrong about that. Let me try something and get back to you.
-
@Qtstarter121
You really should install debugger. :)
Its ment to find stuff like this :) -
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. facepalmI neglected to include it because I wrongly assumed the code wasn't relevant.
Sorry for wasting your time and thanks for the help.
-
@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 recognizedHowever 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.
-
@Qtstarter121
You are not using Creator? -
@mrjj nope, gdb.
-
@Qtstarter121
Ok so you compile outside of Creator and not using the dgb integration ?