QT主窗体调用另一个窗体的时候,叠加在一起。如何让第二个窗体独立显示出来。
时间: 2024-05-04 17:22:32 浏览: 11
可以使用QWidget的setWindowModality()函数来设置第二个窗体的模态性,从而使其独立显示出来。setWindowModality()函数有四个选项:Qt::NonModal、Qt::WindowModal、Qt::ApplicationModal、Qt::WindowModality。
- Qt::NonModal:第二个窗体不是模态的,即可以与主窗体同时操作。
- Qt::WindowModal:第二个窗体是窗口模态的,即只有在第二个窗体关闭后才能操作主窗体。
- Qt::ApplicationModal:第二个窗体是应用程序模态的,即只有在第二个窗体关闭后才能操作整个应用程序。
- Qt::WindowModality:这个选项可以通过按位或(|)的方式来与其他选项组合使用,比如Qt::WindowModal | Qt::WindowTitleHint表示窗口模态并显示标题栏。
例如,以下代码将第二个窗体设置为非模态的:
```
SecondWindow *secondWindow = new SecondWindow;
secondWindow->setWindowModality(Qt::NonModal);
secondWindow->show();
```
如果要将第二个窗体设置为窗口模态的:
```
SecondWindow *secondWindow = new SecondWindow;
secondWindow->setWindowModality(Qt::WindowModal);
secondWindow->show();
```
如果要将第二个窗体设置为应用程序模态的:
```
SecondWindow *secondWindow = new SecondWindow;
secondWindow->setWindowModality(Qt::ApplicationModal);
secondWindow->show();
```