在我们开发的QT应用程序中,我们需要显示几个“查看器窗口”(用于在XY平面、YX平面、XZ平面和3D中显示数据)。
我们希望使用MDI应用程序模型,但后来客户要求在多个桌面(使用多个显示器)中拖动和查看“查看器窗口”。这不能使用MDI窗口模型来完成,因为我们不能将MDI窗口移动到主应用程序窗口之外。
唯一可能的方法是使用Dock窗口,因为它们可以从主应用程序窗口脱离停靠并移动到其他桌面,但Dock窗口主要用于工具选项板或实用程序窗口。
(http://doc.qt.nokia.com/4.6/qdockwidget.html#details)
根据我们的需求使用Dock window是一种好的做法吗?
发布于 2010-06-01 16:23:27
我不会使用QDockWindow,因为您似乎不会使用客户区。此外,您不希望停靠到MainWindow边框,而只是将小部件添加到MainWindow。
我认为您可以尝试在一个QGridLayout中使用多个QWidget。在MainWindow外部拖动QWidget时,只需将QWidget从布局中移除即可。在MainWindow中拖动时,将QWidget添加到QGridLayout中的正确位置。使用此方法,您也可以将小部件的位置切换到主窗口中。
我不知道它是否足够清楚,但我的想法与在QtDesigner中拖动新元素到布局中的方式相同。拖动窗口小部件时,您可以看到释放鼠标按钮时将添加窗口小部件的位置。
在我看来,这种方法可能就是您正在寻找的方法。
希望这能有所帮助
https://stackoverflow.com/questions/2947156
复制相似问题