Модель MDI или док-станция Windows? - PullRequest
6 голосов
/ 01 июня 2010

В приложении QT, которое мы разрабатываем, нам нужно отобразить несколько «окон просмотра» (для отображения данных в плоскости XY, плоскости YX, плоскости XZ и в 3D).

Мы надеялись использовать модель приложения MDI, но позже клиент запросил требование перетаскивать и просматривать «окна просмотра» на нескольких рабочих столах (с использованием нескольких мониторов). Это невозможно сделать с помощью модели окон MDI, поскольку мы не можем переместить окно MDI за пределы основного окна приложения.

Единственно возможным способом является использование окон Dock, поскольку их можно отсоединить от главного окна приложения и перенести на другие рабочие столы, но окна Dock в основном используются для палитр инструментов или служебных окон.

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

Рекомендуется ли использовать окно Dock для нашего требования?

1 Ответ

4 голосов
/ 01 июня 2010

Я бы не использовал QDockWindow, так как кажется, что вы не будете использовать клиентскую область. Кроме того, вы не хотите закреплять границы MainWindow, а просто добавили виджет в MainWindow.

Я думаю, вы можете попробовать использовать несколько QWidget с QGridLayout. При перетаскивании QWidget за пределы MainWindow, просто удалите QWidget из макета. При перетаскивании внутри MainWindow добавьте QWidget в нужное место в QGridLayout. С помощью этого метода вы также можете переключать места виджета в главное окно.

Не знаю, достаточно ли это ясно, но я думаю о том же, как это делается в QtDesigner при перетаскивании новых элементов в макет При перетаскивании виджетов вы можете видеть место, куда они будут добавлены при отпускании кнопки мыши.

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

Надеюсь, что поможет

...