tags:

views:

96

answers:

1

Greetings,

In the QT application we develop we need to display several 'Viewer windows'(to display data in XY plane ,YX plane,XZ plane and in 3D).

We were hoping to use MDI application model ,but later client asked for a requirement to drag and view 'Viewer windows' in multiple desktops.(using multiple monitors). This can not be done using MDI window model ,because we cannot move MDI window outside the Main Application Window.

Only possible way is to use Dock windows because they can be undocked from Main Application Window and move into other desktops, but Dock windows primary used for tool-palettes or utility windows.

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

Is it a good practice to use Dock window for our requirement?

thanks in advance.

+1  A: 

I would not use the QDockWindow since it seems you will not use the client area. In addition, you don't want docking to the MainWindow borders but just added the widget to the MainWindow.

I think you can try to use multiple QWidget with a QGridLayout. When dragging QWidget outside of the MainWindow, just remove QWidget from the layout. When dragging inside the MainWindow add the QWidget to the right place in the QGridLayout. With this method you can too switch widget's places into the Main Window.

I don't know if it is clear enough but I'm thinking to the same way it is done in QtDesigner when dragging new elements into a layout. When dragging widgets you can see the place where it will be added when releasing the mouse button.

In my mind this method can be the one you are searching for.

Hope that helps

Patrice Bernassola
thanks alot for the answer! I will try to implement the way you suggested. But seems it need some smart hacks . I need to go with SDI model with QGridLayout,but how can I display QWidgets outside without a parent?
umanga
If a widget as no parent, it becomes a stand alone window as explain in the detailed description of QWidget : http://doc.qt.nokia.com/4.6/qwidget.html#details
Patrice Bernassola