QT dialog close and delete

后端 未结 3 1703
走了就别回头了
走了就别回头了 2021-01-16 10:11

I have a MainWindow and Type class.

A button in the MainWindow sends a signal to a slot with this code:

dialog = new QDialog(this);

Ui_type typeui;
         


        
相关标签:
3条回答
  • 2021-01-16 10:39

    First the close button is at the dialog window right, then most easy way to do it, is create a button, and connect the close() function to response the click() signal. like:

    Dialog::Dialog(){
       // other code
       QPushButton *closeButton = new QPushButton(tr("Close"));
        connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
       // other code
    }
    

    Under the Qt/examples/dialog projects are good reference for your question. check it out.

    0 讨论(0)
  • 2021-01-16 10:42

    The simple way to get input from a modal dialog is QDialog::exec(). This may handle everything you need.

    0 讨论(0)
  • 2021-01-16 10:49

    You can set Qt::WA_DeleteOnClose attribute on your dialog. This will ensure that the dialog gets deleted whenever it is closed.

    Then call close() method in the dialog when your button is clicked.

    dialog = new QDialog(this);
    
    Ui_type typeui;
    typeui.setupUi(dialog);
    
    dialog->setAttribute(Qt::WA_DeleteOnClose);
    
    dialog->show();
    

    Refer to the documentation for details :

    QWidget::setAttribute ( Qt::WidgetAttribute attribute, bool on = true )

    Qt::WidgetAttribute

    0 讨论(0)
提交回复
热议问题