Модель MDI или док-станция для Windows?
В разрабатываемом нами приложении QT нам нужно отобразить несколько "окон просмотра" (для отображения данных в плоскости XY, плоскости YX, плоскости XZ и в 3D).
Мы надеялись использовать модель приложения MDI, но позже клиент запросил требование перетаскивать и просматривать "окна просмотра" на нескольких рабочих столах (с использованием нескольких мониторов). Это нельзя сделать с помощью модели окон MDI, потому что мы не можем переместить окно MDI за пределы главного окна приложения.
Единственный возможный способ - использовать Dock-окна, потому что их можно отсоединить от главного окна приложения и перенести на другие рабочие столы, но Dock-окна в основном используются для палитр инструментов или служебных окон.
( http://doc.qt.nokia.com/4.6/qdockwidget.html)
Является ли хорошей практикой использование окна Dock для нашего требования?
1 ответ
Я бы не использовал QDockWindow, так как кажется, что вы не будете использовать клиентскую область. Кроме того, вы не хотите пристыковываться к границам MainWindow, а просто добавили виджет в MainWindow.
Я думаю, что вы можете попробовать использовать несколько QWidget с QGridLayout. При перетаскивании QWidget за пределы MainWindow, просто удалите QWidget из макета. При перетаскивании внутри MainWindow добавьте QWidget в нужное место в QGridLayout. С помощью этого метода вы также можете переключать места виджета в главное окно.
Я не знаю, достаточно ли это понятно, но я думаю о том же, как это делается в QtDesigner при перетаскивании новых элементов в макет. При перетаскивании виджетов вы можете видеть место, куда он будет добавлен при отпускании кнопки мыши.
На мой взгляд, этот метод может быть тем, который вы ищете.
надеюсь, это поможет