为什么我使用 setActivationOrder() 来设置窗口平铺顺序不起作用,正确用法是什么样的,给我一个实例
时间: 2024-02-20 22:56:26 浏览: 16
如果你使用 setActivationOrder() 设置窗口平铺顺序没有起作用,可能是因为你没有在 MDI 子窗口的激活历史记录中添加子窗口。因为 setActivationOrder() 方法是按照 MDI 子窗口的激活历史顺序来排列子窗口的,如果没有添加激活历史记录,那么设置窗口平铺顺序就没有意义。
下面是一个简单的实例,演示如何使用 setActivationOrder() 方法来设置窗口平铺顺序。
```c++
// 创建 MDI 窗口
QMdiArea *mdiArea = new QMdiArea(this);
setCentralWidget(mdiArea);
// 创建两个子窗口
QTextEdit *textEdit1 = new QTextEdit;
QTextEdit *textEdit2 = new QTextEdit;
mdiArea->addSubWindow(textEdit1);
mdiArea->addSubWindow(textEdit2);
// 将子窗口添加到激活历史记录中
textEdit1->show();
textEdit2->show();
mdiArea->setActiveSubWindow(textEdit2);
mdiArea->setActiveSubWindow(textEdit1);
// 设置窗口平铺顺序为激活历史记录顺序
mdiArea->setActivationOrder(QMdiArea::ActivationHistoryOrder);
mdiArea->tileSubWindows();
```
在这个例子中,我们先创建了一个 MDI 区域,并添加了两个子窗口。然后,我们将两个子窗口分别显示出来,并且将 textEdit2 设置为激活窗口,再将 textEdit1 设置为激活窗口。最后,我们调用 setActivationOrder() 方法将窗口平铺顺序设置为激活历史记录顺序,再调用 tileSubWindows() 方法将子窗口平铺。这样就能按照激活历史记录顺序来排列子窗口了。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)