Qt开发,尝试多窗体.在主窗体上打开新建了一个窗体并打开:
//主窗体中
FormDoc *w = new FormDoc();
w->move(QApplication::desktop()->screen()->rect().center() - w->rect().center());
w->setWindowFlags(w->windowFlags() | Qt::WindowStaysOnTopHint);
w->show();
然后在新窗体上为[关闭]按钮绑定了关闭事件,目标是仅仅关闭这个新窗口:
//新窗体中
void FormDoc::close(){
this->close();
}
想当然地用了this->close()方法,但是发现主窗体连同整个程序一起关闭了. 所以这里不能用this->close()方法.
摸索了很长时间,总算在网上找到了答案,用deleteLater()方法.
//新窗体中
void FormDoc::close(){
this->deleteLater();
}
这样,关闭新窗体之后,主窗体并不受其影响.
问题解决.