在Qt应用程序中是否有管理Windows的标准化方法?

时间:2012-01-01 22:15:05

标签: c++ qt user-interface

我正在寻找最佳实践或设计模式来管理Qt应用程序的窗口。

让我解释一下我的意思。假设我有一个具有一些窗口(A,B,C)的应用程序,我需要在window A内打开window B并确保创建一个有效的新window A实例每次调用时的参数,最后当需要显示窗口时,如果有其他人创建新实例,则将现有实例放在前面。

当然,真实世界的应用程序要复杂得多,并且有更多的窗口和限制,因此我不想在整个代码中传播我的窗口管理操作,而是将它们保存在静态WindowManager类中。 (实际上这个类是单例,但我正在考虑将其改为静态类)

WindowManager类为系统中的每个窗口保存(私有)QSharedPointer,因此我可以轻松地从代码中的任何位置操作所有窗口。当我需要显示window X时,我只需调用WindowManager::showX(params),所有检查和初始化都在该代码中进行。此外,我有像WindowManager::minimizeX()这样的方法来处理某些逻辑,显示系统托盘消息,然后最小化窗口。

这是一个普遍的需求,是否有解决问题的一般模式?你们如何管理应用程序的窗口?我所做的(静态WindowManager类)是否可以接受?

<小时/> 编辑:应用程序是系统托盘应用程序,因此窗口之间没有父子关系;相反,它们彼此独立,通常用户通过(全局)热键调用任何窗口。然而,在一个窗口中我需要打开另一个但仍然不能是父母和孩子的情况。

0 个答案:

没有答案