7#include <QtCore/qobject.h>
8#include <QtCore/qdeadlinetimer.h>
13class QEventLoopPrivate;
18 Q_DECLARE_PRIVATE(QEventLoop)
19 friend class QEventLoopLocker;
22 explicit QEventLoop(QObject *parent =
nullptr);
25 enum ProcessEventsFlag {
27 ExcludeUserInputEvents = 0x01,
28 ExcludeSocketNotifiers = 0x02,
29 WaitForMoreEvents = 0x04,
30 X11ExcludeTimers = 0x08,
33 ApplicationExec = 0x80,
35 Q_DECLARE_FLAGS(ProcessEventsFlags, ProcessEventsFlag)
36 Q_FLAG(ProcessEventsFlags)
38 bool processEvents(ProcessEventsFlags flags = AllEvents);
39 void processEvents(ProcessEventsFlags flags,
int maximumTime);
40 void processEvents(ProcessEventsFlags flags, QDeadlineTimer deadline);
42 int exec(ProcessEventsFlags flags = AllEvents);
43 bool isRunning()
const;
47 bool event(QEvent *event) override;
50 void exit(
int returnCode = 0);
54Q_DECLARE_OPERATORS_FOR_FLAGS(QEventLoop::ProcessEventsFlags)
56class QEventLoopLockerPrivate;
81 enum class Type : quintptr {
86 explicit QEventLoopLocker(
void *ptr, Type t)
noexcept;
88 static constexpr quintptr TypeMask = 0x3;
89 Type type()
const {
return Type(p & TypeMask); }
90 void *pointer()
const {
return reinterpret_cast<
void *>(p & ~TypeMask); }
91 template <
typename Func>
92 void visit(Func func)
const;
QDeferredDeleteEvent(int loopLevel, int scopeLevel)
Constructs a deferred delete event with the given loop and scope level.
Q_CORE_EXPORT ~QEventLoopLocker()
Destroys this event loop locker object.
Q_TRACE_POINT(qtcore, QCoreApplication_notify_exit, bool consumed, bool filtered)
void QT_MANGLE_NAMESPACE qt_startup_hook()
static QString qAppFileName()
QList< QtStartUpFunction > QStartUpFuncList
Q_TRACE_METADATA(qtcore, "ENUM { AUTO, RANGE User ... MaxUser } QEvent::Type;")
QString qtTrId(const char *id, int n)
Q_TRACE_POINT(qtcore, QCoreApplication_postEvent_exit)
static void qt_call_pre_routines()
qsizetype qGlobalPostedEventsCount()
static Q_CONSTINIT bool preRoutinesCalled
QList< QtCleanUpFunction > QVFuncList
static void replacePercentN(QString *result, int n)
Q_TRACE_POINT(qtcore, QCoreApplication_postEvent_event_compressed, QObject *receiver, QEvent *event)
QString qTrId(const char *id, int n)
Q_TRACE_POINT(qtcore, QCoreApplication_postEvent_entry, QObject *receiver, QEvent *event, QEvent::Type type)
Q_TRACE_PREFIX(qtcore, "#include <qcoreevent.h>")
Q_CORE_EXPORT void qAddPostRoutine(QtCleanUpFunction)
void(* QtCleanUpFunction)()
void(* QtStartUpFunction)()
Q_CORE_EXPORT void qAddPreRoutine(QtStartUpFunction)
Q_CORE_EXPORT void qRemovePostRoutine(QtCleanUpFunction)
#define Q_EVENT_DISABLE_COPY(Class)
#define Q_DECL_EVENT_COMMON(Class)
Q_GLOBAL_STATIC(QReadWriteLock, g_updateMutex)
QString applicationVersion
QCoreApplicationData() noexcept
bool applicationVersionSet