당신은 단지 show()
void MainWindow::on_actionPATH_triggered() {
QDialog* win = new QDialog();
//needed connect
win->setAttribute(Qt::WA_DeleteOnClose);//we don't want memory leak
win->show();
}
를 사용하고 doc에서
win->setModal(false);//but it is default option, you don't need to change it
사용할 수 있습니다 기본적으로
이 속성은()와 같은 대화 상자를 팝업 허위 쇼모덜리스. 속성을 true로 설정하면 QWidget :: windowModality를 Qt :: ApplicationModal로 설정하는 것과 같습니다. exec()는이 속성의 값을 무시하고 대화 상자를 항상 모달로 표시합니다.
Qt::WA_DeleteOnClose
사용자가 대화 상자를 닫을 때 해당 대화 상자가 삭제됩니다. 또한 대화에 부모를 설정할 수 있습니다
:
QDialog* win = new QDialog(this);
이 경우 win
에서 당신의 MainWindow를 함께 삭제됩니다.
Info about Qt parent child relationship
그리고 당신은 여기에 별도의 스레드를 필요로하지 않습니다.
모달을 변경하십시오. –
@ratchetfreak OP가 exec()를 사용하는 경우 의미가 없습니다. http://qt-project.org/doc/qt-5/qdialog.html#modal-prop – Chernobyl