[Qt-interest] Passing a variable back from a form
Robert Wood
robert.wood at apostrophe.co.uk
Tue Mar 22 23:12:29 CET 2011
I am trying to create a pop-up window that has a load of JPEGs on it.
When one of the JPEGs (which is put on a push button) is clicked, I want
the form to close and a value dependent on which button is pressed
passed back to the calling form.
I have tried a few things such as making it a dialogue box, but this
doesn't work as you seem to need to press the OK button. I tried this
(using a naughty global variable!):
// This routine does return the value and close the form
quint16 config_dialogue::returnConfig(void)
{
return RetVal;
}
// This is one of the JPEG buttons; it does set the RetVal to 42
// but it does not shut the form down and pass the value back
quint16 config_dialogue::nineGroups(void)
{
RetVal = 42;
returnConfig();
}
Then used this from the calling from:
config_dialogue dialogue(this);
if (dialogue.exec() == QDialog::Accepted)
{
ConfigNumber = dialogue.returnConfig();
ui->label->setText("Number returned" + QString::number(ConfigNumber));
}
And although I do get 42 back. I still have to press the OK button.
So, is there a way to have a load of buttons on a form and whichever
button you press it passes a unique number back to the calling form
please? It doesn't have to be a dialogue, just a normal form will be fine.
I did try passing a pointer to a variable to the dialogue/form and
making the dialogue modal, but the scope of it is only within the class
constructor. I guess there might be a way of having this pointer
accessible within the rest of the class, but this would be a weakness in
my C++ knowledge. (Yes I know this isn't a C++ tutorial forum, so if
this question offends please just ignore me!).
Thanks!
More information about the Qt-interest-old
mailing list