The QDockWidget class provides a widget that can be docked inside a QMainWindow 或浮動在桌麵上作為頂層窗口。 更多...
| 頭: | #include <QDockWidget> |
| qmake: | QT += widgets |
| 繼承: | QWidget |
| enum | DockWidgetFeature { DockWidgetClosable, DockWidgetMovable, DockWidgetFloatable, DockWidgetVerticalTitleBar, AllDockWidgetFeatures, NoDockWidgetFeatures } |
| flags | DockWidgetFeatures |
| QDockWidget (const QString & title , QWidget * parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) | |
| QDockWidget (QWidget * parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags()) | |
| virtual | ~QDockWidget () |
| Qt::DockWidgetAreas | allowedAreas () const |
| QDockWidget::DockWidgetFeatures | features () const |
| bool | isAreaAllowed (Qt::DockWidgetArea area ) const |
| bool | isFloating () const |
| void | setAllowedAreas (Qt::DockWidgetAreas areas ) |
| void | setFeatures (QDockWidget::DockWidgetFeatures features ) |
| void | setFloating (bool floating ) |
| void | setTitleBarWidget (QWidget * widget ) |
| void | setWidget (QWidget * widget ) |
| QWidget * | titleBarWidget () const |
| QAction * | toggleViewAction () const |
| QWidget * | widget () const |
| void | allowedAreasChanged (Qt::DockWidgetAreas allowedAreas ) |
| void | dockLocationChanged (Qt::DockWidgetArea area ) |
| void | featuresChanged (QDockWidget::DockWidgetFeatures features ) |
| void | topLevelChanged (bool topLevel ) |
| void | visibilityChanged (bool visible ) |
| const QMetaObject | staticMetaObject |
| void | initStyleOption (QStyleOptionDockWidget * option ) const |
| virtual void | changeEvent (QEvent * event ) override |
| virtual void | closeEvent (QCloseEvent * event ) override |
| virtual bool | event (QEvent * event ) override |
| virtual void | paintEvent (QPaintEvent * event ) override |
The QDockWidget class provides a widget that can be docked inside a QMainWindow 或浮動在桌麵上作為頂層窗口。
QDockWidget provides the concept of dock widgets, also know as tool palettes or utility windows. Dock windows are secondary windows placed in the dock widget area around the central widget 在 QMainWindow .
Dock windows can be moved inside their current area, moved into new areas and floated (e.g., undocked) by the end-user. The QDockWidget API allows the programmer to restrict the dock widgets ability to move, float and close, as well as the areas in which they can be placed.
A QDockWidget consists of a title bar and the content area. The title bar displays the dock widgets 窗口標題 , float button and a close button. Depending on the state of the QDockWidget , float and close buttons may be either disabled or not shown at all.
The visual appearance of the title bar and buttons is dependent on the style in use.
A QDockWidget acts as a wrapper for its child widget, set with setWidget (). Custom size hints, minimum and maximum sizes and size policies should be implemented in the child widget. QDockWidget will respect them, adjusting its own constraints to include the frame and title. Size constraints should not be set on the QDockWidget itself, because they change depending on whether it is docked; a docked QDockWidget has no frame and a smaller title bar.
另請參閱 QMainWindow and 停放 Widget 範例 .
| 常量 | 值 | 描述 |
|---|---|---|
QDockWidget::DockWidgetClosable
|
0x01
|
The dock widget can be closed. On some systems the dock widget always has a close button when it's floating (for example on MacOS 10.5). |
QDockWidget::DockWidgetMovable
|
0x02
|
The dock widget can be moved between docks by the user. |
QDockWidget::DockWidgetFloatable
|
0x04
|
The dock widget can be detached from the main window, and floated as an independent window. |
QDockWidget::DockWidgetVerticalTitleBar
|
0x08
|
The dock widget displays a vertical title bar on its left side. This can be used to increase the amount of vertical space in a QMainWindow . |
QDockWidget::AllDockWidgetFeatures
|
DockWidgetClosable|DockWidgetMovable|DockWidgetFloatable
|
(Deprecated) The dock widget can be closed, moved, and floated. Since new features might be added in future releases, the look and behavior of dock widgets might change if you use this flag. Please specify individual flags instead. |
QDockWidget::NoDockWidgetFeatures
|
0x00
|
The dock widget cannot be closed, moved, or floated. |
DockWidgetFeatures 類型是 typedef 對於 QFlags <DockWidgetFeature>. It stores an OR combination of DockWidgetFeature values.
areas where the dock widget may be placed
默認為 Qt::AllDockWidgetAreas .
訪問函數:
| Qt::DockWidgetAreas | allowedAreas () const |
| void | setAllowedAreas (Qt::DockWidgetAreas areas ) |
通知程序信號:
| void | allowedAreasChanged (Qt::DockWidgetAreas allowedAreas ) |
另請參閱 Qt::DockWidgetArea .
This property holds whether the dock widget is movable, closable, and floatable
By default, this property is set to a combination of DockWidgetClosable , DockWidgetMovable and DockWidgetFloatable .
訪問函數:
| QDockWidget::DockWidgetFeatures | features () const |
| void | setFeatures (QDockWidget::DockWidgetFeatures features ) |
通知程序信號:
| void | featuresChanged (QDockWidget::DockWidgetFeatures features ) |
另請參閱 DockWidgetFeature .
此特性保持停放 Widget 是否浮動
A floating dock widget is presented to the user as an independent window "on top" of its parent QMainWindow , instead of being docked in the QMainWindow .
默認情況下,此特性為
true
.
當此特性改變時,
topLevelChanged()
信號發射。
訪問函數:
| bool | isFloating () const |
| void | setFloating (bool floating ) |
另請參閱 isWindow () 和 topLevelChanged ().
此特性保持停放 Widget 標題 (題注)
默認情況下,此特性包含空字符串。
訪問函數:
| QString | windowTitle () const |
| void | setWindowTitle ( const QString & ) |
通知程序信號:
| void | windowTitleChanged (const QString & title ) |
構造 QDockWidget 采用父級 parent 和窗口標誌 flags . The dock widget will be placed in the left dock widget area.
窗口標題被設為 title . This title is used when the QDockWidget is docked and undocked. It is also used in the context menu provided by QMainWindow .
另請參閱 setWindowTitle ().
構造 QDockWidget 采用父級 parent 和窗口標誌 flags . The dock widget will be placed in the left dock widget area.
[虛擬]
QDockWidget::
~QDockWidget
()
Destroys the dock widget.
[signal]
void
QDockWidget::
allowedAreasChanged
(
Qt::DockWidgetAreas
allowedAreas
)
此信號發射,當 allowedAreas 特性改變。 allowedAreas parameter gives the new value of the property.
注意: 通知程序信號對於特性 allowedAreas .
[override virtual protected]
void
QDockWidget::
changeEvent
(
QEvent
*
event
)
重實現自 QWidget::changeEvent ().
[override virtual protected]
void
QDockWidget::
closeEvent
(
QCloseEvent
*
event
)
重實現自 QWidget::closeEvent ().
[signal]
void
QDockWidget::
dockLocationChanged
(
Qt::DockWidgetArea
area
)
This signal is emitted when the dock widget is moved to another dock area , or is moved to a different location in its current dock area. This happens when the dock widget is moved programmatically or is dragged to a new location by the user.
該函數在 Qt 4.3 引入。
[override virtual protected]
bool
QDockWidget::
event
(
QEvent
*
event
)
重實現自 QWidget::event ().
[signal]
void
QDockWidget::
featuresChanged
(
QDockWidget::DockWidgetFeatures
features
)
此信號發射,當 features 特性改變。 features parameter gives the new value of the property.
注意: 通知程序信號對於特性 features .
[protected]
void
QDockWidget::
initStyleOption
(
QStyleOptionDockWidget
*
option
) const
初始化 option 采用值來自此 QDockWidget 。此方法對子類是有用的,當需要 QStyleOptionDockWidget ,但不希望自己填充所有信息。
另請參閱 QStyleOption::initFrom ().
返迴
true
if this dock widget can be placed in the given
area
;否則返迴
false
.
[override virtual protected]
void
QDockWidget::
paintEvent
(
QPaintEvent
*
event
)
重實現自 QWidget::paintEvent ().
Sets an arbitrary widget as the dock widget's title bar. If widget is 0, any custom title bar widget previously set on the dock widget is removed, but not deleted, and the default title bar will be used instead.
If a title bar widget is set, QDockWidget will not use native window decorations when it is floated.
Here are some tips for implementing custom title bars:
QDockWidget *dockWidget = qobject_cast<QDockWidget*>(parentWidget()); if (dockWidget->features() & QDockWidget::DockWidgetVerticalTitleBar) { // I need to be vertical } else { // I need to be horizontal }
使用 qobject_cast () as shown above, the title bar widget has full access to its parent QDockWidget . Hence it can perform such operations as docking and hiding in response to user actions.
該函數在 Qt 4.3 引入。
另請參閱 titleBarWidget () 和 DockWidgetVerticalTitleBar .
Sets the widget for the dock widget to widget .
If the dock widget is visible when widget 有添加,必須 show() it explicitly.
Note that you must add the layout of the widget before you call this function; if not, the widget will not be visible.
另請參閱 widget ().
Returns the custom title bar widget set on the QDockWidget , or 0 if no custom title bar has been set.
該函數在 Qt 4.3 引入。
另請參閱 setTitleBarWidget ().
Returns a checkable action that can be used to show or close this dock widget.
The action's text is set to the dock widget's window title.
另請參閱 QAction::text and QWidget::windowTitle .
[signal]
void
QDockWidget::
topLevelChanged
(
bool
topLevel
)
此信號發射,當 floating 特性改變。 topLevel parameter is true if the dock widget is now floating; otherwise it is false.
另請參閱 isWindow ().
[signal]
void
QDockWidget::
visibilityChanged
(
bool
visible
)
This signal is emitted when the dock widget becomes visible (or invisible). This happens when the widget is hidden or shown, as well as when it is docked in a tabbed dock area and its tab becomes selected or unselected.
該函數在 Qt 4.3 引入。
Returns the widget for the dock widget. This function returns zero if the widget has not been set.
另請參閱 setWidget ().