如果要设置为模态对话框,最简单的就是使用exec()方法,示例代码如下: MyDialog myDlg; myDlg.exec(); 也可以使用show()方法,示例代码如下: MyDialog myDlg; myDlg.setModal(true); myDlg.show(); 如果要设置为非模态对话框,必须使用show()方法,示例代码如下: MyDialog myDlg; myDlg.setModal(false);//或者 myDlg.setModal(); myDlg.show(); 如果需要它总在所有窗口的最前面,这时可以通过如下代码设置: myDlg.setWindowFlags(Qt::WindowStaysOnTopHint) 一闪而过问题分析: MyDialog myDlg; myDlg.setModal(true); myDlg.show(); 一闪而过。 myDlg创建在stack上,生命期是大括号内 MyDialog myDlg=new MyDialog(); myDlg.setModal(true); myDlg.show(); 报错 MyDialog *myDlg=new MyDailog(); myDlg->setModal(true); myDlg->show(); ok myDlg通过new创建在heap上, 在程序退出时才会被析构