[Solved]Opening a New Form with new Widgets.



  • I have built a GUI and its working. I need to put in a page where ill put in some details of the GUI and the Licenses and End User rights for the GUI. For this i have a Push Button which when clicked should open another form where i have a Text Browser and a Link which directs to the GPL 3.0 Licenses etc. But for some reason the second form is not being called when i click on it. This is the code that i have written. Please let me know where am going wrong.
    My first form where my basic GUI is created is test.ui(which has its own test.h and test.cpp). And now i have added a dialog.ui(which has a dialog.cpp and dialog.h). My pushbutton is in test.ui whiuch when called should start the dialog.ui.

    @
    void unametest::on_pushbutton_clicked()
    {
    dialog *dlg=new dialog(this);
    dlg->show();
    dlg->raise();
    dialog->activateWindow();
    }
    @

    [EDIT: code formatting, please wrap in @-tags, Volker]



  • [quote author="bmps" date="1321533448"]
    @
    void unametest::on_pushbutton_clicked()
    {
    dialog *dlg=new dialog(this);
    dlg->show();
    dlg->raise();
    dialog->activateWindow();
    }
    @
    [/quote]

    First, please use the right tag to mark your code.
    Second, in your code you have pointers like dlg and dialog, I suspect this is an error rewriting your code for your post. What happens if you call exec on the dialog?



  • How do i call the exec on the dialog?? Not able to figure it out.



  • [quote author="bmps" date="1321595624"]How do i call the exec on the dialog?? Not able to figure it out. [/quote]
    Here it is "exec":http://doc.qt.nokia.com/latest/qdialog.html#exec



  • You can use follow:
    @void unametest::on_pushbutton_clicked()
    {
    dialog *dlg=new dialog(this);
    dlg->exec();
    }@

    or
    @void unametest::on_pushbutton_clicked()
    {
    dialog *dlg=new dialog(this);
    dlg->setWindowModality(Qt::WindowModal);
    dlg->exec();
    }@
    if you need modal window



  • Sory i mean:
    @void unametest::on_pushbutton_clicked()
    {
    dialog *dlg=new dialog(this);
    dlg->setModal(true);
    dlg->exec();
    }@



  • Doesn't calling exec() on a QDialog (-subclass) always result in a modal dialog? The setModel(true) call seems superfluous to me. You need to call show() if you want the dialog to pop up non-modally.



  • Andre is right. exec() on a dialog always shows it application model (default) or window modal. A call to setModel is not necessary.



  • Thanks, I'll remember.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.