Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qmenubar.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// Qt-Security score:significant reason:default
4
5#ifndef QMENUBAR_H
6#define QMENUBAR_H
7
8#include <QtWidgets/qtwidgetsglobal.h>
9#include <QtWidgets/qmenu.h>
10
12
13QT_BEGIN_NAMESPACE
14
15class QMenuBarPrivate;
16class QStyleOptionMenuItem;
17class QWindowsStyle;
18class QPlatformMenuBar;
19
20class Q_WIDGETS_EXPORT QMenuBar : public QWidget
21{
22 Q_OBJECT
23
24 Q_PROPERTY(bool defaultUp READ isDefaultUp WRITE setDefaultUp)
25 Q_PROPERTY(bool nativeMenuBar READ isNativeMenuBar WRITE setNativeMenuBar)
26
27public:
28 explicit QMenuBar(QWidget *parent = nullptr);
29 ~QMenuBar();
30
31 using QWidget::addAction;
32#if QT_WIDGETS_REMOVED_SINCE(6, 3)
33 QAction *addAction(const QString &text);
34 QAction *addAction(const QString &text, const QObject *receiver, const char* member);
35#endif
36
37 QAction *addMenu(QMenu *menu);
38 QMenu *addMenu(const QString &title);
39 QMenu *addMenu(const QIcon &icon, const QString &title);
40
41
42 QAction *addSeparator();
43 QAction *insertSeparator(QAction *before);
44
45 QAction *insertMenu(QAction *before, QMenu *menu);
46
47 void clear();
48
49 QAction *activeAction() const;
50 void setActiveAction(QAction *action);
51
52 void setDefaultUp(bool);
53 bool isDefaultUp() const;
54
55 QSize sizeHint() const override;
56 QSize minimumSizeHint() const override;
57 int heightForWidth(int) const override;
58
59 QRect actionGeometry(QAction *) const;
60 QAction *actionAt(const QPoint &) const;
61
62 void setCornerWidget(QWidget *w, Qt::Corner corner = Qt::TopRightCorner);
63 QWidget *cornerWidget(Qt::Corner corner = Qt::TopRightCorner) const;
64
65#if defined(Q_OS_MACOS) || defined(Q_QDOC)
66 NSMenu* toNSMenu();
67#endif
68
69 bool isNativeMenuBar() const;
70 void setNativeMenuBar(bool nativeMenuBar);
71 QPlatformMenuBar *platformMenuBar();
72public Q_SLOTS:
73 void setVisible(bool visible) override;
74
75Q_SIGNALS:
76 void triggered(QAction *action);
77 void hovered(QAction *action);
78
79protected:
80 void changeEvent(QEvent *) override;
81 void keyPressEvent(QKeyEvent *) override;
82 void mouseReleaseEvent(QMouseEvent *) override;
83 void mousePressEvent(QMouseEvent *) override;
84 void mouseMoveEvent(QMouseEvent *) override;
85 void leaveEvent(QEvent *) override;
86 void paintEvent(QPaintEvent *) override;
87 void resizeEvent(QResizeEvent *) override;
88 void actionEvent(QActionEvent *) override;
89 void focusOutEvent(QFocusEvent *) override;
90 void focusInEvent(QFocusEvent *) override;
91 void timerEvent(QTimerEvent *) override;
92 bool eventFilter(QObject *, QEvent *) override;
93 bool event(QEvent *) override;
94 virtual void initStyleOption(QStyleOptionMenuItem *option, const QAction *action) const;
95
96private:
97 Q_DECLARE_PRIVATE(QMenuBar)
98 Q_DISABLE_COPY(QMenuBar)
99 Q_PRIVATE_SLOT(d_func(), void _q_actionTriggered())
100 Q_PRIVATE_SLOT(d_func(), void _q_actionHovered())
101 Q_PRIVATE_SLOT(d_func(), void _q_internalShortcutActivated(int))
102 Q_PRIVATE_SLOT(d_func(), void _q_updateLayout())
103
104 friend class QMenu;
105 friend class QMenuPrivate;
106 friend class QWindowsStyle;
107};
108
109QT_END_NAMESPACE
110
111#endif // QMENUBAR_H
QSize sizeHint() const override
Definition qmenubar.cpp:69
void paintEvent(QPaintEvent *) override
\reimp
Definition qmenubar.cpp:58
QMenuBarExtension(QWidget *parent)
Definition qmenubar.cpp:47
QPlatformMenu * findInsertionPlatformMenu(const QAction *action)
QMenuBarExtension * extension
Definition qmenubar_p.h:93
QPlatformMenu * getPlatformMenu(const QAction *action)
QAction * actionAt(QPoint p) const
Definition qmenubar.cpp:79
void calcActionRects(int max_width, int start) const
Definition qmenubar.cpp:383
void _q_internalShortcutActivated(int)
void _q_actionTriggered()
Definition qmenubar.cpp:495
void _q_updateLayout()
void copyActionToPlatformMenu(const QAction *e, QPlatformMenu *menu)
void focusFirstAction()
Definition qmenubar.cpp:236
QAction * getNextAction(const int start, const int increment) const
Definition qmenubar.cpp:695
QPlatformMenuBar * platformMenuBar
Definition qmenubar_p.h:110
void popupAction(QAction *, bool)
Definition qmenubar.cpp:273
void setCurrentAction(QAction *, bool=false, bool=false)
Definition qmenubar.cpp:339
int indexOf(QAction *act) const
Definition qmenubar_p.h:115
void activateAction(QAction *, QAction::ActionEvent)
Definition qmenubar.cpp:479
void updateGeometries()
Definition qmenubar.cpp:127
void handleReparent()
QRect menuRect(bool) const
Definition qmenubar.cpp:88
bool isVisible(QAction *action)
Definition qmenubar.cpp:122
void _q_actionHovered()
Definition qmenubar.cpp:503
void setKeyboardMode(bool)
Definition qmenubar.cpp:247
QRect actionRect(QAction *) const
Definition qmenubar.cpp:223
The QMenuBar class provides a horizontal menu bar.
Definition qmenubar.h:21
friend class QWidget
Definition qpainter.h:431
#define qApp
QT_REQUIRE_CONFIG(menubar)
QMenu menu
[5]