Signal slots question
-
hi everybody . i have one question
@
#include <QtGui>void slt()
{
// do something
}int main(int argc, char *argv[])
{
QApplication app(argc, argv);QPushButton btn; // connect btn signal(clicked()) to slt "function" !! i want connect to function not object! return app.exec();
}
@tnx for your help :)
-
You must have a class that contains your slot, which is in this case,
void slot()
. Have you defined your class somewhere? If so, can we see it?I'm no expert on this, but I think I may be able to help you here..
-
What you need is some basic knowledge of Qt. And this will be useful for you www.catb.org/~esr/faqs/smart-questions.html
What you provided are some Qt4's code snippets, but your slt() is not a Qt SLOT at all!
However, you can do similar thing with Qt5 using the new SIGNAL & SLOT syntax.
Read the manual carefully.
-
if i have too many button or .... and i want define for them different slots , what i must to do ? i must declare to many class or one global class !! if i have too many button and for each of them has been one slot , how can i declare this ?!!
-
I think what you need is to:
learn better English
get some more practice in object oriented programming
rethink and rephrase your questions so that other people - who want to help you - can understand them clearly
read Qt documentation on "signal and slot mechanism":http://qt-project.org/doc/qt-4.8/signalsandslots.html, it's really well written.
The answer to your questions, as far as I can get what you mean, is this: you can declare multiple slots in a single class, and connect your button signals to them (that is more or less the standard practice), or create one slot and handle all signals there (this is ugly, I won't recommend).
About "how can I declare this"... really, really, DO read the docs. Here is a snippet:
@
public slots:
void mySlot();
@And in source somewhere:
@
connect(someButton, SIGNAL(clicked()), someObject, SLOT(mySlot()));.....
void MyClass::mySlot() {
/// code
}@
-
You can define one ore more classes with one or more slots.
signals of an object in Qt 4.x MUST be connected to a slot of an object. Whether you use one or more classes for the slots is up to you. -
Damn, I do sound quite arrogant at times :( Sorry.
But I really mean it with reading the documentation.