模态与非模态机制

模态

若出现了模态对话框,在该对话框未点击或者未释放的情况下,那么主窗口将无法点击、操作或者发送消息,即不能再与同一个应用程序的其他窗口进行交互,直到模态对话框退出或释放才可以继续交互。

模态是一种按照顺序进行操作的机制

非模态

在程序运行的过程中,若出现了非模态对话框,在不理睬该对话框的情况下,主窗口仍然可以操作或者发送消息。即在弹出的对话框未进行操作的情况下,仍然可以与同一个应用程序的其他窗口进行交互。

非模态是一种按照平行进行操作的机制。

建立模态对话框:

QDialog dialog=new QDialog(this);
dialog->setModal(true);//即在运行的时候弹出对话框,进入阻塞状态,等待用户处理完毕后,在进行就绪->执行
dialog->show();



或者将setModel()函数替代为setWindowModality(非阻塞/阻塞父窗口和其子窗口/阻塞整个应用程序所有窗口)

建立非模态对话框:

QDialog dialog=new QDialog(this);
dialog->show();

你可能感兴趣的:(Qt,qt,状态模式)