Viadeo Twitter Google Bookmarks ! Facebook Digg del.icio.us MySpace Yahoo MyWeb Blinklist Netvouz Reddit Simpy StumbleUpon Bookmarks Windows Live Favorites 
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Classes principales  ·  Annotées  ·  Classes groupées  ·  Modules  ·  Fonctions  · 

Q3DockWindow Class Reference
[Qt3Support module]

The Q3DockWindow class provides a widget which can be docked inside a Q3DockArea or floated as a top level window on the desktop. More...

#include <Q3DockWindow>

This class is part of the Qt 3 support library. It is provided to keep old source code working. We strongly advise against using it in new code. See Porting to Qt 4 for more information.

Inherits Q3Frame.

Inherited by Q3ToolBar.

Public Types

  • enum CloseMode { Never, Docked, Undocked, Always }
  • enum Place { InDock, OutsideDock }

Properties

  • 2 properties inherited from Q3Frame
  • 6 properties inherited from QFrame
  • 54 properties inherited from QWidget
  • 1 property inherited from QObject

Public Functions

  • 4 public functions inherited from Q3Frame
  • 13 public functions inherited from QFrame
  • 190 public functions inherited from QWidget
  • 28 public functions inherited from QObject
  • 12 public functions inherited from QPaintDevice

Public Slots

  • 17 public slots inherited from QWidget
  • 1 public slot inherited from QObject

Signals

Additional Inherited Members

  • 2 static public members inherited from QFrame
  • 4 static public members inherited from QWidget
  • 4 static public members inherited from QObject
  • 5 protected functions inherited from Q3Frame
  • 39 protected functions inherited from QWidget
  • 7 protected functions inherited from QObject
  • 1 protected function inherited from QPaintDevice

Detailed Description

The Q3DockWindow class provides a widget which can be docked inside a Q3DockArea or floated as a top level window on the desktop.

This class handles moving, resizing, docking and undocking dock windows. Q3ToolBar is a subclass of Q3DockWindow so the functionality provided for dock windows is available with the same API for toolbars.

Q3DockWindows in a Q3DockArea

Two Q3DockWindows (Q3ToolBars) in a Q3DockArea

A Q3DockWindow

A Floating Q3DockWindow

If the user drags the dock window into the dock area the dock window will be docked. If the user drags the dock area outside any dock areas the dock window will be undocked (floated) and will become a top level window. Double clicking a floating dock window's title bar will dock the dock window to the last dock area it was docked in. Double clicking a docked dock window's handle will undock (float) the dock window. If the user clicks the close button (which appears on floating dock windows by default) the dock window will disappear. You can control whether or not a dock window has a close button with setCloseMode().

Q3MainWindow provides four dock areas (top, left, right and bottom) which can be used by dock windows. For many applications using the dock areas provided by Q3MainWindow is sufficient. (See the Q3DockArea documentation if you want to create your own dock areas.) In Q3MainWindow a right-click popup menu (the dock window menu) is available which lists dock windows and can be used to show or hide them. (The popup menu only lists dock windows that have a caption.)

When you construct a dock window you must pass it a Q3DockArea or a Q3MainWindow as its parent if you want it docked. Pass 0 for the parent if you want it floated.

    Q3ToolBar *fileTools = new Q3ToolBar(this, "File Actions");
    moveDockWindow(fileTools, Left);

In the example above we create a new Q3ToolBar in the constructor of a Q3MainWindow subclass (so that the this pointer points to the Q3MainWindow). By default the toolbar will be added to the Top dock area, but we've moved it to the Left dock area.

A dock window is often used to contain a single widget. In these cases the widget can be set by calling setWidget(). If you're constructing a dock window that contains multiple widgets, e.g. a toolbar, arrange the widgets within a box layout inside the dock window. To do this use the boxLayout() function to get a pointer to the dock window's box layout, then add widgets to the layout using the box layout's QBoxLayout::addWidget() function. The dock window will dynamically set the orientation of the layout to be vertical or horizontal as necessary, although you can control this yourself with setOrientation().

Although a common use of dock windows is for toolbars, they can be used with any widgets. When using larger widgets it may make sense for the dock window to be resizable by calling setResizeEnabled(). Resizable dock windows are given splitter-like handles to allow the user to resize them within their dock area. When resizable dock windows are undocked they become top level windows and can be resized like any other top level windows, e.g. by dragging a corner or edge.

Qt::Dock windows can be docked and undocked using dock() and undock(). A dock window's orientation can be set with setOrientation(). You can also use Q3DockArea::moveDockWindow(). If you're using a Q3MainWindow, Q3MainWindow::moveDockWindow() and Q3MainWindow::removeDockWindow() are available.

A dock window can have some preferred settings, for example, you can set a preferred offset from the left edge (or top edge for vertical dock areas) of the dock area using setOffset(). If you'd prefer a dock window to start on a new line when it is docked use setNewLine(). The setFixedExtentWidth() and setFixedExtentHeight() functions can be used to define the dock window's preferred size, and the setHorizontallyStretchable() and setVerticallyStretchable() functions set whether the dock window can be stretched or not. Dock windows can be moved by default, but this can be changed with setMovingEnabled(). When a dock window is moved it is shown as a rectangular outline, but it can be shown normally using setOpaqueMoving().

When a dock window's visibility changes, i.e. it is shown or hidden, the visibilityChanged() signal is emitted. When a dock window is docked, undocked or moved inside the dock area the placeChanged() signal is emitted.


Member Type Documentation

enum Q3DockWindow::CloseMode

This enum type specifies when (if ever) a dock window has a close button.

ConstantValueDescription
Q3DockWindow::Never0The dock window never has a close button and cannot be closed by the user.
Q3DockWindow::Docked1The dock window has a close button only when docked.
Q3DockWindow::Undocked2The dock window has a close button only when floating.
Q3DockWindow::AlwaysDocked | UndockedThe dock window always has a close button.

enum Q3DockWindow::Place

This enum specifies the possible locations for a Q3DockWindow:

ConstantValueDescription
Q3DockWindow::InDock0Inside a Q3DockArea.
Q3DockWindow::OutsideDock1Floating as a top level window on the desktop.


Property Documentation

closeMode : int

This property holds the close mode of a dock window.

Defines when (if ever) the dock window has a close button. The choices are Never, Docked (i.e. only when docked), Undocked (only when undocked, i.e. floated) or Always.

The default is Never.

Access functions:

  • int closeMode () const
  • virtual void setCloseMode ( int m )

horizontallyStretchable : bool

This property holds whether the dock window is horizontally stretchable.

A dock window is horizontally stretchable if you call setHorizontallyStretchable(true) or setResizeEnabled(true).

Warning: Stretchability is broken. You must call setResizeEnabled(true) to get proper behavior and even then Q3DockWindow does not limit stretchablilty.

Access functions:

  • bool isHorizontallyStretchable () const
  • virtual void setHorizontallyStretchable ( bool b )

See also setResizeEnabled().

movingEnabled : bool

This property holds whether the user can move the dock window within the dock area, move the dock window to another dock area, or float the dock window.

This property is true by default.

Access functions:

  • bool isMovingEnabled () const
  • virtual void setMovingEnabled ( bool b )

newLine : bool

This property holds whether the dock window prefers to start a new line in the dock area.

The default is false, i.e. the dock window doesn't require a new line in the dock area.

Access functions:

  • bool newLine () const
  • virtual void setNewLine ( bool b )

offset : int

This property holds the dock window's preferred offset from the dock area's left edge (top edge for vertical dock areas).

The default is 0.

Access functions:

  • int offset () const
  • virtual void setOffset ( int o )

opaqueMoving : bool

This property holds whether the dock window will be shown normally whilst it is being moved.

If this property is false, (the default), the dock window will be represented by an outline rectangle whilst it is being moved.

Warning: Currently opaque moving has some problems and we do not recommend using it at this time. We expect to fix these problems in a future release.

Access functions:

  • bool opaqueMoving () const
  • virtual void setOpaqueMoving ( bool b )

place : const Place

This property holds the location where the dock window is placed.

This is either InDock or OutsideDock.

Access functions:

  • Place place () const

See also Q3DockArea::moveDockWindow(), Q3DockArea::removeDockWindow(), Q3MainWindow::moveDockWindow(), and Q3MainWindow::removeDockWindow().

resizeEnabled : bool

This property holds whether the dock window is resizeable.

A resizeable dock window can be resized using splitter-like handles inside a dock area and like every other top level window when floating.

A dock window is both horizontally and vertically stretchable if you call setResizeEnabled(true).

This property is false by default.

Access functions:

  • bool isResizeEnabled () const
  • virtual void setResizeEnabled ( bool b )

See also setVerticallyStretchable() and setHorizontallyStretchable().

stretchable : const bool

This property holds whether the dock window is stretchable in the current orientation().

This property can be set using setHorizontallyStretchable() and setVerticallyStretchable(), or with setResizeEnabled().

Warning: Stretchability is broken. You must call setResizeEnabled(true) to get proper behavior and even then Q3DockWindow does not limit stretchablilty.

Access functions:

  • bool isStretchable () const

See also setResizeEnabled().

verticallyStretchable : bool

This property holds whether the dock window is vertically stretchable.

A dock window is vertically stretchable if you call setVerticallyStretchable(true) or setResizeEnabled(true).

Warning: Stretchability is broken. You must call setResizeEnabled(true) to get proper behavior and even then Q3DockWindow does not limit stretchablilty.

Access functions:

  • bool isVerticallyStretchable () const
  • virtual void setVerticallyStretchable ( bool b )

See also setResizeEnabled().


Member Function Documentation

Q3DockWindow::Q3DockWindow ( Place p = InDock, QWidget * parent = 0, const char * name = 0, Qt::WFlags f = 0 )

Constructs a Q3DockWindow with parent parent, called name and with widget flags f.

If p is InDock, the dock window is docked into a dock area and parent must be a Q3DockArea or a Q3MainWindow. If the parent is a Q3MainWindow the dock window will be docked in the main window's Top dock area.

If p is OutsideDock, the dock window is created as a floating window.

We recommend creating the dock area InDock with a Q3MainWindow as parent then calling Q3MainWindow::moveDockWindow() to move the dock window where you want it.

Q3DockWindow::Q3DockWindow ( QWidget * parent, const char * name = 0, Qt::WFlags f = 0 )

Constructs a Q3DockWindow with parent parent, called name and with widget flags f.

Q3DockWindow::~Q3DockWindow ()

Destroys the dock window and its child widgets.

Q3DockArea * Q3DockWindow::area () const

Returns the dock area in which this dock window is docked, or 0 if the dock window is floating.

QBoxLayout * Q3DockWindow::boxLayout ()

Returns the layout which is used for adding widgets to the dock window. The layout's orientation is set automatically to match the orientation of the dock window. You can add widgets to the layout using the box layout's QBoxLayout::addWidget() function.

If the dock window only needs to contain a single widget use setWidget() instead.

See also setWidget() and setOrientation().

void Q3DockWindow::dock ()   [virtual slot]

Docks the dock window into the last dock area in which it was docked.

If the dock window has no last dock area (e.g. it was created as a floating window and has never been docked), or if the last dock area it was docked in does not exist (e.g. the dock area has been deleted), nothing happens.

The dock window will dock with the dock area regardless of the return value of Q3DockArea::isDockWindowAccepted().

See also undock(), Q3DockArea::moveDockWindow(), Q3DockArea::removeDockWindow(), Q3MainWindow::moveDockWindow(), Q3MainWindow::removeDockWindow(), and Q3DockArea::isDockWindowAccepted().

QSize Q3DockWindow::fixedExtent () const

Returns the dock window's preferred size (fixed extent).

See also setFixedExtentWidth() and setFixedExtentHeight().

bool Q3DockWindow::isCloseEnabled () const

Returns true if the dock window has a close button; otherwise returns false. The result depends on the dock window's Place and its CloseMode.

See also setCloseMode().

bool Q3DockWindow::isHorizontalStretchable () const

bool Q3DockWindow::isVerticalStretchable () const

Qt::Orientation Q3DockWindow::orientation () const

Returns the orientation of the dock window.

See also setOrientation() and orientationChanged().

void Q3DockWindow::orientationChanged ( Qt::Orientation o )   [signal]

This signal is emitted when the orientation of the dock window is changed. The new orientation is o.

void Q3DockWindow::placeChanged ( Q3DockWindow::Place p )   [signal]

This signal is emitted when the dock window is docked (p is InDock), undocked (p is OutsideDock) or moved inside the the dock area.

See also Q3DockArea::moveDockWindow(), Q3DockArea::removeDockWindow(), Q3MainWindow::moveDockWindow(), and Q3MainWindow::removeDockWindow().

void Q3DockWindow::setFixedExtentHeight ( int h )   [virtual]

Sets the dock window's preferred height for its fixed extent (size) to h.

See also setFixedExtentWidth().

void Q3DockWindow::setFixedExtentWidth ( int w )   [virtual]

Sets the dock window's preferred width for its fixed extent (size) to w.

See also setFixedExtentHeight().

void Q3DockWindow::setHorizontalStretchable ( bool b )

If b is true the dock window is set to be horizontally stretchable.

See also isHorizontalStretchable().

void Q3DockWindow::setOrientation ( Qt::Orientation o )   [virtual slot]

Sets the orientation of the dock window to o. The orientation is propagated to the layout boxLayout().

Warning: All undocked Q3ToolBars will always have a horizontal orientation.

See also orientation().

void Q3DockWindow::setVerticalStretchable ( bool b )

If b is true the dock window is set to be vertically stretchable.

See also isVerticalStretchable().

void Q3DockWindow::setWidget ( QWidget * w )   [virtual]

Sets the dock window's main widget to w.

See also widget() and boxLayout().

void Q3DockWindow::undock ( QWidget * widget )   [virtual slot]

Undocks the specified widget from its current dock area if it is docked; otherwise does nothing.

See also dock(), Q3DockArea::moveDockWindow(), Q3DockArea::removeDockWindow(), Q3MainWindow::moveDockWindow(), and Q3MainWindow::removeDockWindow().

void Q3DockWindow::undock ()   [virtual slot]

This is an overloaded member function, provided for convenience.

Undocks the Q3DockWindow from its current dock area if it is docked; otherwise does nothing.

See also dock(), Q3DockArea::moveDockWindow(), Q3DockArea::removeDockWindow(), Q3MainWindow::moveDockWindow(), and Q3MainWindow::removeDockWindow().

void Q3DockWindow::visibilityChanged ( bool visible )   [signal]

This signal is emitted when the visibility of the dock window relatively to its dock area is changed. If visible is true, the Q3DockWindow is now visible to the dock area, otherwise it has been hidden.

A dock window can be hidden if it has a close button which the user has clicked. In the case of a Q3MainWindow a dock window can have its visibility changed (hidden or shown) by clicking its name in the dock window menu that lists the Q3MainWindow's dock windows.

QWidget * Q3DockWindow::widget () const

Returns the dock window's main widget.

See also setWidget().

QString Q3DockWindow::windowTitle () const

Returns the dock window's title.

Publicité

Best Of

Actualités les plus lues

Semaine
Mois
Année
  1. « Quelque chose ne va vraiment pas avec les développeurs "modernes" », un développeur à "l'ancienne" critique la multiplication des bibliothèques 94
  2. Apercevoir la troisième dimension ou l'utilisation multithreadée d'OpenGL dans Qt, un article des Qt Quarterly traduit par Guillaume Belz 0
  3. Les développeurs ignorent-ils trop les failles découvertes dans leur code ? Prenez-vous en compte les remarques des autres ? 17
  4. Pourquoi les programmeurs sont-ils moins payés que les gestionnaires de programmes ? Manquent-ils de pouvoir de négociation ? 42
  5. Quelles nouveautés de C++11 Visual C++ doit-il rapidement intégrer ? Donnez-nous votre avis 10
  6. Adieu qmake, bienvenue qbs : Qt Building Suite, un outil déclaratif et extensible pour la compilation de projets Qt 17
  7. 2017 : un quinquennat pour une nouvelle version du C++ ? Possible, selon Herb Sutter 7
Page suivante

Le blog Digia au hasard

Logo

Créer des applications avec un style Metro avec Qt, exemples en QML et C++, un article de Digia Qt traduit par Thibaut Cuvelier

Le blog Digia est l'endroit privilégié pour la communication sur l'édition commerciale de Qt, où des réponses publiques sont apportées aux questions les plus posées au support. Lire l'article.

Communauté

Ressources

Liens utiles

Contact

  • Vous souhaitez rejoindre la rédaction ou proposer un tutoriel, une traduction, une question... ? Postez dans le forum Contribuez ou contactez-nous par MP ou par email (voir en bas de page).

Qt dans le magazine

Cette page est une traduction d'une page de la documentation de Qt, écrite par Nokia Corporation and/or its subsidiary(-ies). Les éventuels problèmes résultant d'une mauvaise traduction ne sont pas imputables à Nokia. Qt 4.1
Copyright © 2012 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.
Vous avez déniché une erreur ? Un bug ? Une redirection cassée ? Ou tout autre problème, quel qu'il soit ? Ou bien vous désirez participer à ce projet de traduction ? N'hésitez pas à nous contacter ou par MP !
 
 
 
 
Partenaires

Hébergement Web