signal and slots between two classes
-
@mrjj can you exaplain what you mean by that? Sorry
-
@marlenet15
Hi np.
Im not 100% sure what you did.
If you promote a widget to a dialog.
the dialog will be sort of inside the parent/widget that contains the
promoted widget.
So I wondered if you promoted a stacked widget to the signin dialog ? -
@mrjj I created a stackedwidget in dialog.ui, in there I promoted signin.h into the stackedwidget.
-
ahh that way. Hmm should be the same as using a plain qwidget but seems it was not.
Can I ask what kind of design u are after ?
like sort of custom wizard style thing ? -
@mrjj yes I am. I am doing something simple now in order to understand how it works so that later I can use it so that when i click the button, it goes to the next page.
-
@marlenet15
Ok. but you want it to be standalone Dialogs or pages in a stacked widget ?
or you want to use UI files that you promote into the stacked widget? -
@mrjj pages in a stackedwidget. I figured it out how to make it work through code but I am having a difficult time make it work only through Qt Designer/.ui file
-
@marlenet15
Ok. well I think such wizard do need code if not just a Dialog with a stacked widget and the the Next button outside of the stacked. -
You can connect 2 signals.
-
@koahnig
yeah but not sure how it helps ?
Can you explain more about the setup? -
Instead of the SLOT macro you use another SIGNAL macro.
bool boo = connect (ptrFirst, SIGNAL (mySigFirst() ), this, SIGNAL ( newSignal() ) );
That is useful when you simply have to pass on a signal. It saves you to create a slot in your class which simply is emitting a signal.
the text in the signal & slot explanatory part below the graph and shortly before the heading Signals is
You can connect as many signals as you want to a single slot, and a signal can be connected to as many slots as you need. It is even possible to connect a signal directly to another signal. (This will emit the second signal immediately whenever the first is emitted.)In the form of the example above I have used it already.
-
@mrjj It's called signal forwarding. It's used mainly to avoid creating slots that just re-emits the same signal one class upper.
-
Thank you :)
I can see it gives cleaner code if a slot is not really needed. -
@marlenet15 said:
@mrjj I created a stackedwidget in dialog.ui, in there I promoted signin.h into the stackedwidget.
Your code shows that
signin
inheritsQDialog
, notQStackedWidget
. So, I don't think you can promote aQStackedWidget
to aSignin
... Did you change your C++ code after you added QStackedWidget?so that later I can use it so that when i click the button, it goes to the next page.
I suggest using QWizard, not a QStackedWidget