Модель 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 при перетаскивании новых элементов в макет. При перетаскивании виджетов вы можете видеть место, куда он будет добавлен при отпускании кнопки мыши.

На мой взгляд, этот метод может быть тем, который вы ищете.

надеюсь, это поможет

Другие вопросы по тегам