Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qmainwindow.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QDYNAMICMAINWINDOW_H
5#define QDYNAMICMAINWINDOW_H
6
7#include <QtWidgets/qtwidgetsglobal.h>
8#include <QtWidgets/qwidget.h>
9#if QT_CONFIG(tabwidget)
10#include <QtWidgets/qtabwidget.h>
11#endif
12
14
16
17class QDockWidget;
19class QMenuBar;
20class QStatusBar;
21class QToolBar;
22class QMenu;
23
24class Q_WIDGETS_EXPORT QMainWindow : public QWidget
25{
27
28 Q_PROPERTY(QSize iconSize READ iconSize WRITE setIconSize)
29 Q_PROPERTY(Qt::ToolButtonStyle toolButtonStyle READ toolButtonStyle WRITE setToolButtonStyle)
30#if QT_CONFIG(dockwidget)
31 Q_PROPERTY(bool animated READ isAnimated WRITE setAnimated)
32#if QT_CONFIG(tabbar)
33 Q_PROPERTY(bool documentMode READ documentMode WRITE setDocumentMode)
34#endif // QT_CONFIG(tabbar)
35#if QT_CONFIG(tabwidget)
36 Q_PROPERTY(QTabWidget::TabShape tabShape READ tabShape WRITE setTabShape)
37#endif // QT_CONFIG(tabwidget)
38 Q_PROPERTY(bool dockNestingEnabled READ isDockNestingEnabled WRITE setDockNestingEnabled)
39#endif // QT_CONFIG(dockwidget)
40 Q_PROPERTY(DockOptions dockOptions READ dockOptions WRITE setDockOptions)
41#if QT_CONFIG(toolbar)
42 Q_PROPERTY(bool unifiedTitleAndToolBarOnMac READ unifiedTitleAndToolBarOnMac
43 WRITE setUnifiedTitleAndToolBarOnMac)
44#endif
45
46public:
48 AnimatedDocks = 0x01,
49 AllowNestedDocks = 0x02,
50 AllowTabbedDocks = 0x04,
51 ForceTabbedDocks = 0x08, // implies AllowTabbedDocks, !AllowNestedDocks
52 VerticalTabs = 0x10, // implies AllowTabbedDocks
53 GroupedDragging = 0x20 // implies AllowTabbedDocks
54 };
55 Q_ENUM(DockOption)
56 Q_DECLARE_FLAGS(DockOptions, DockOption)
57 Q_FLAG(DockOptions)
58
59 explicit QMainWindow(QWidget *parent = nullptr, Qt::WindowFlags flags = Qt::WindowFlags());
61
62 QSize iconSize() const;
63 void setIconSize(const QSize &iconSize);
64
65 Qt::ToolButtonStyle toolButtonStyle() const;
66 void setToolButtonStyle(Qt::ToolButtonStyle toolButtonStyle);
67
68#if QT_CONFIG(dockwidget)
69 bool isAnimated() const;
70 bool isDockNestingEnabled() const;
71#endif
72
73#if QT_CONFIG(tabbar)
74 bool documentMode() const;
75 void setDocumentMode(bool enabled);
76#endif
77
78#if QT_CONFIG(tabwidget)
79 QTabWidget::TabShape tabShape() const;
80 void setTabShape(QTabWidget::TabShape tabShape);
82 void setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition);
83#endif // QT_CONFIG(tabwidget)
84
85 void setDockOptions(DockOptions options);
86 DockOptions dockOptions() const;
87
88 bool isSeparator(const QPoint &pos) const;
89
90#if QT_CONFIG(menubar)
91 QMenuBar *menuBar() const;
92 void setMenuBar(QMenuBar *menubar);
93
94 QWidget *menuWidget() const;
95 void setMenuWidget(QWidget *menubar);
96#endif
97
98#if QT_CONFIG(statusbar)
99 QStatusBar *statusBar() const;
100 void setStatusBar(QStatusBar *statusbar);
101#endif
102
103 QWidget *centralWidget() const;
104 void setCentralWidget(QWidget *widget);
105
106 QWidget *takeCentralWidget();
107
108#if QT_CONFIG(dockwidget)
109 void setCorner(Qt::Corner corner, Qt::DockWidgetArea area);
110 Qt::DockWidgetArea corner(Qt::Corner corner) const;
111#endif
112
113#if QT_CONFIG(toolbar)
114 void addToolBarBreak(Qt::ToolBarArea area = Qt::TopToolBarArea);
115 void insertToolBarBreak(QToolBar *before);
116
117 void addToolBar(Qt::ToolBarArea area, QToolBar *toolbar);
118 void addToolBar(QToolBar *toolbar);
119 QToolBar *addToolBar(const QString &title);
120 void insertToolBar(QToolBar *before, QToolBar *toolbar);
121 void removeToolBar(QToolBar *toolbar);
122 void removeToolBarBreak(QToolBar *before);
123
124 bool unifiedTitleAndToolBarOnMac() const;
125
126 Qt::ToolBarArea toolBarArea(const QToolBar *toolbar) const;
127 bool toolBarBreak(QToolBar *toolbar) const;
128#endif // QT_CONFIG(toolbar)
129
130#if QT_CONFIG(dockwidget)
131 void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget);
132 void addDockWidget(Qt::DockWidgetArea area, QDockWidget *dockwidget,
133 Qt::Orientation orientation);
134 void splitDockWidget(QDockWidget *after, QDockWidget *dockwidget,
135 Qt::Orientation orientation);
136#if QT_CONFIG(tabbar)
137 void tabifyDockWidget(QDockWidget *first, QDockWidget *second);
138 QList<QDockWidget*> tabifiedDockWidgets(QDockWidget *dockwidget) const;
139#endif
140 void removeDockWidget(QDockWidget *dockwidget);
141 bool restoreDockWidget(QDockWidget *dockwidget);
142
143 Qt::DockWidgetArea dockWidgetArea(QDockWidget *dockwidget) const;
144
145 void resizeDocks(const QList<QDockWidget *> &docks,
146 const QList<int> &sizes, Qt::Orientation orientation);
147#endif // QT_CONFIG(dockwidget)
148
149 QByteArray saveState(int version = 0) const;
150 bool restoreState(const QByteArray &state, int version = 0);
151
152#if QT_CONFIG(menu)
153 virtual QMenu *createPopupMenu();
154#endif
155
156public Q_SLOTS:
157#if QT_CONFIG(dockwidget)
158 void setAnimated(bool enabled);
159 void setDockNestingEnabled(bool enabled);
160#endif
161#if QT_CONFIG(toolbar)
162 void setUnifiedTitleAndToolBarOnMac(bool set);
163#endif
164
168#if QT_CONFIG(dockwidget)
169 void tabifiedDockWidgetActivated(QDockWidget *dockWidget);
170#endif
171
172protected:
173#ifndef QT_NO_CONTEXTMENU
174 void contextMenuEvent(QContextMenuEvent *event) override;
175#endif
176 bool event(QEvent *event) override;
177
178private:
179 Q_DECLARE_PRIVATE(QMainWindow)
180 Q_DISABLE_COPY(QMainWindow)
181 friend class QDockWidgetGroupWindow;
182};
183
185
187
188#endif // QDYNAMICMAINWINDOW_H
\inmodule QtCore
Definition qbytearray.h:57
The QContextMenuEvent class contains parameters that describe a context menu event.
Definition qevent.h:594
The QDockWidget class provides a widget that can be docked inside a QMainWindow or floated as a top-l...
Definition qdockwidget.h:20
\inmodule QtCore
Definition qcoreevent.h:45
The QMainWindow class provides a main application window.
Definition qmainwindow.h:25
void iconSizeChanged(const QSize &iconSize)
This signal is emitted when the size of the icons used in the window is changed.
void toolButtonStyleChanged(Qt::ToolButtonStyle toolButtonStyle)
This signal is emitted when the style used for tool buttons in the window is changed.
The QMenuBar class provides a horizontal menu bar.
Definition qmenubar.h:20
The QMenu class provides a menu widget for use in menu bars, context menus, and other popup menus.
Definition qmenu.h:26
\inmodule QtCore\reentrant
Definition qpoint.h:25
\inmodule QtCore
Definition qsize.h:25
The QStatusBar class provides a horizontal bar suitable for presenting status information.
Definition qstatusbar.h:17
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
TabPosition
This enum type defines where QTabWidget draws the tab row:
Definition qtabwidget.h:74
TabShape
This enum type defines the shape of the tabs: \value Rounded The tabs are drawn with a rounded look.
Definition qtabwidget.h:85
The QToolBar class provides a movable panel that contains a set of controls.
Definition qtoolbar.h:23
The QWidget class is the base class of all user interface objects.
Definition qwidget.h:99
QOpenGLWidget * widget
[1]
opt iconSize
else opt state
[0]
Combined button and popup list for selecting options.
Definition qcompare.h:63
DockWidgetArea
ToolBarArea
@ TopToolBarArea
Orientation
Definition qnamespace.h:98
ToolButtonStyle
#define Q_DECLARE_FLAGS(Flags, Enum)
Definition qflags.h:174
#define Q_DECLARE_OPERATORS_FOR_FLAGS(Flags)
Definition qflags.h:194
static bool isSeparator(char c)
Definition qhsts.cpp:280
static int area(const QSize &s)
Definition qicon.cpp:153
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLbitfield flags
GLint first
struct _cl_event * event
GLuint GLsizei const GLuint const GLintptr const GLsizeiptr * sizes
#define QT_REQUIRE_CONFIG(feature)
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_FLAG(x)
#define Q_SLOTS
#define Q_SIGNALS
QFuture< QSet< QChar > > set
[10]
QString title
[35]
QDockWidget * dockWidget
[0]
QMenuBar * menuBar
[0]
statusBar() -> addWidget(new MyReadWriteIndication)
[0]