在我们开发的QT应用程序中,我们需要显示几个“查看器窗口”(以在XY平面,YX平面,XZ平面和3D中显示数据)。
我们希望使用MDI应用程序模型,但后来客户端要求在多个桌面中拖动和查看“查看器窗口”(使用多个监视器)。 使用MDI窗口模型无法完成此操作,因为我们无法将MDI窗口移动到主应用程序窗口之外。
唯一可行的方法是使用Dock窗口,因为它们可以从主应用程序窗口移除并移动到其他桌面,但Dock窗口主要用于工具调色板或实用程序窗口。
(http://doc.qt.nokia.com/4.6/qdockwidget.html#details)
根据我们的要求使用Dock窗口是一个好习惯吗?
答案 0 :(得分:4)
我不会使用QDockWindow,因为它似乎不会使用客户端区域。此外,您不希望停靠到MainWindow边框,只是将小部件添加到MainWindow。
我认为您可以尝试将多个QWidget与QGridLayout一起使用。将QWidget拖到MainWindow外部时,只需从布局中删除QWidget即可。在MainWindow中拖动时,将QWidget添加到QGridLayout中的正确位置。使用此方法,您也可以将窗口小部件的位置切换到主窗口。
我不知道它是否足够清楚,但我在考虑将新元素拖入布局时在QtDesigner中完成的方式。拖动小部件时,您可以看到释放鼠标按钮时添加小部件的位置。
在我看来,这个方法可以是你要搜索的方法。
希望有所帮助