下面我们试着将exec()修改为show(),看看非模态对话框: QDialog dialog(this); dialog.setWindowTitle(tr("Hello, dialog!")); dialog.show(); 是不是事与愿违?对话框竟然一闪而过!这是因为,show()函数不会阻塞当前线程,对话框会显示出来,然后函数立即返回,代码继续执行。注意,dialog 是建立在栈上的,show...
可以看到使用exec()方法显示出的对话框为模态对话框,同时会阻塞之前窗口的响应直到用户关闭这个对话框,并且返回DialogCode(包括Accepted和Rejected两个值)结果。 看红色划线部分,如果没有设置Qt::WindowModality属性值,使用exec()方法显示出的对话框默认为应用程序级模态对话框。所有使用exec()方法显示对话框在窗口关闭前...
可以看到使用exec()方法显示出的对话框为模态对话框,同时会阻塞之前窗口的响应直到用户关闭这个对话框,并且返回DialogCode(包括Accepted和Rejected两个值)结果。 看红色划线部分,如果没有设置Qt::WindowModality属性值,使用exec()方法显示出的对话框默认为应用程序级模态对话框。所有使用exec()方法显示对话框在窗口关闭前...
exec(); 7.3.2 非模态对话框 下面我们试着将 exec()修改为 show(),看看非模态对话框: QDialog dialog(this); dialog.setWindowTitle(tr("Hello, dialog!")); dialog.show(); 是不是事与愿违?对话框竟然一闪而过!这是因为,show()函数不会阻塞当前线程,对话框会显示出来,然后函数立即返回,代码...
下面我们试着将exec()修改为show(),看看非模态对话框: QDialogdialog(this);dialog.setWindowTitle(tr("Hello, dialog!"));dialog.show(); 1. 2. 3. 是不是事与愿违?对话框竟然一闪而过!这是因为,**show()函数不会阻塞当前线程,对话框会显示出来,然后函数立即返回,代码继续执行。**注意,dialog 是建立...
dialog.exec(); 非模态对话框 下面我们试着将exec()修改为show(),看看非模态对话框: QDialog dialog(this); dialog.setWindowTitle(tr("Hello, dialog!")); dialog.show(); 是不是事与愿违?对话框竟然一闪而过!这是因为,show()函数不会阻塞当前线程,对话框会显示出来,然后函数立即返回,代码继续执行。注意...
显然是不可以的,这里调用完show()方法后立即返回了,并不知道用户选择了Accepted还是Rejected。而exec()会阻塞后面代码的执行,直到对话框关闭,返回结果。 下面用QDialog的exec()方法来显示一个模态对话框。 void showModalWindow(){ QWidget* pWindow = new QWidget(); QDialog* childDialog = new QDialog(pWind...
下面我们试着将exec()修改为show(),看看非模态对话框: voidMainWindow::open(){ QDialogdialog(this); dialog.setWindowTitle(tr("Hello, dialog!")); dialog.show(); } 是不是事与愿违?对话框竟然一闪而过!这是因为,show()函数不会阻塞当前线程,对话框会显示出来,然后函数立即返回,代码继续执行。注意,...
下面我们试着将exec()修改为show(),看看非模态对话框: QDialog dialog(this); dialog.setWindowTitle(tr("Hello, dialog!")); dialog.show(); 1. 2. 3. 是不是事与愿违?对话框竟然一闪而过!这是因为,show()函数不会阻塞当前线程,对话框会显示出来,然后函数立即返回,代码继续执行。注意,dialog 是建立在...