MDI模型还是Dock Windows?

Ash*_*iya 6 qt mdi docking qt4

在我们开发的QT应用程序中,我们需要显示几个"查看器窗口"(以在XY平面,YX平面,XZ平面和3D中显示数据).

我们希望使用MDI应用程序模型,但后来客户端要求在多个桌面中拖动和查看"查看器窗口"(使用多个监视器).使用MDI窗口模型无法完成此操作,因为我们无法在主应用程序窗口之外移动MDI窗口.

唯一可能的方法是使用Dock窗口,因为它们可以从主应用程序窗口移除并移动到其他桌面,但Dock窗口主要用于工具调色板或实用程序窗口.

(http://doc.qt.nokia.com/4.6/qdockwidget.html#details)

使用Dock窗口满足我们的要求是一个好习惯吗?

Pat*_*ola 4

我不会使用 QDockWindow 因为看起来你不会使用客户区。此外,您不想停靠到主窗口边框,而只是将小部件添加到主窗口。

我认为你可以尝试将多个 QWidget 与 QGridLayout 一起使用。当将 QWidget 拖到主窗口之外时,只需从布局中删除 QWidget 即可。在 MainWindow 内拖动时,将 QWidget 添加到 QGridLayout 中的正确位置。通过这种方法,您也可以将小部件的位置切换到主窗口中。

我不知道它是否足够清晰,但我正在以与 QtDesigner 中将新元素拖动到布局中时相同的方式进行思考。拖动小部件时,释放鼠标按钮时您可以看到它将添加到的位置。

在我看来,这种方法可能就是您正在寻找的方法。

希望有帮助

  • 如果一个小部件没有父级,它将成为一个独立的窗口,如 QWidget 的详细描述中所述:http://doc.qt.nokia.com/4.6/qwidget.html#details (2认同)