qt - 处理 MdiArea 中的窗口状态
问题描述
我在我的应用程序中使用了 MDI 中央小部件。目前我总是以最大化的方式打开一个孩子
child->showMaximized();
如果我使用级联或平铺工作区,这会导致问题。现在我试图找出子窗口是否最大化。如果不是,我想打开它们
child->showNormal();
但片段:
foreach(QWidget* widget, mdiArea->subWindowList()) {
if(widget->windowState()==Qt::WindowMaximized){
qDebug("maximized");
}else{
qDebug("not maximized");
}
}
看起来这个子窗口将只有 WindowActive 和 WindowNoState。知道如何检查子窗口(子窗口)是否最大化?
最大化我谈论完整的mdiArea(工作区)
解决方案
windowState() 返回一组标志,例如 windowState() 可以指示窗口处于活动状态(Qt::WindowActive)和最大化(Qt::WindowMaximized),所以如果您想验证其中一个是否处于活动状态,您必须使用运算符“&”:
if(widget->windowState() & Qt::WindowMaximized)
推荐阅读
- android - 在应用程序中的多个设备之间共享实时数据
- bash - 启用 selinux 的 Shell 脚本
- javascript - 在 boostrap 中添加谷歌地图容器
- cassandra - 在 cassandra 中对 1 列运行批量更新查询
- mysql - mysql`听起来`没有返回所有正确/预期的结果
- javascript - 在同一页面上提交带有成功/失败警报的联系表
- c# - ASP.NET Core DI:如何在不指定类型的情况下通过 lambda 注入服务
- mysql - 按月返回默认值 1 的 MySQL 交叉表查询?
- vba - 打开表单后如何在 Word 文档末尾添加子文档?
- vba - 删除 Power Point 幻灯片中的现有图表并使用 VBA 替换为新图表