如何"嵌入"另一个窗口

时间:2017-02-03 16:41:33

标签: qt qml

我继承了一个基于Qt的应用程序,通过将详细信息屏幕显示为单独的窗口来处理主/细节关系。主窗口包含一个列表,当您点击一行时,会打开一个单独的详细信息窗口。

在代码库中,详细信息窗口由QML文件和匹配的.cpp文件处理(主窗口也有自己的.cpp文件)。我面临的问题是新客户希望我为他们修改这个应用程序,除了他们希望一切都在一个窗口内发生。他们希望列表显示在左侧,然后当用户点击一行时,详细信息屏幕将显示在窗口右侧的自己的面板中(但不在单独的窗口中)。

由于各种原因,我无法轻易地重构此应用程序。对我来说更快的解决方案是继续在自己的窗口中显示细节屏幕,但要使其成为无边框窗口并将此无边框窗口放在主窗口的顶部(右侧),以使其看起来像一个面板在主窗口内。

Qt有可能这样吗?我以前编写的Windows应用程序已经连接到Windows API以执行类似的操作,但我不知道在本机Mac OS应用程序中是否可以实现这一点,所以我不知道Qt是否可以以某种方式自动处理它。

1 个答案:

答案 0 :(得分:1)

您可以尝试的一件事是创建一个基于" main"窗口,然后使用QWidget::createWindowContainer()包装QtQuick窗口以使用QtWidget方法定位它们,例如,布局。