Public Functions
int
exec
(ProcessEventsFlags flags=
AllEvents
)
Enters the main event loop and waits until
exit()
is called.
More...
void
exit
(int returnCode=0)
Tells the event loop to exit with a return code.
More...
bool
isRunning
() const
Returns true if the event loop is running; otherwise returns false.
More...
bool
processEvents
(ProcessEventsFlags flags=
AllEvents
)
Processes pending events that match
flags
until there are no more events to process.
More...
void
processEvents
(ProcessEventsFlags flags, int maximumTime)
Process pending events that match
flags
for a maximum of
maxTime
milliseconds, or until there are no more events to process, whichever is shorter.
More...
QEventLoop
(
QObject
*
parent
=0)
Constructs an event loop object with the given
parent
.
More...
void
wakeUp
()
Wakes up the event loop.
More...
~QEventLoop
()
Destroys the event loop object.
More...
![-](closed.png)
Public Functions inherited from
QObject
bool
blockSignals
(bool b)
If
block
is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it).
More...
const
QObjectList
&
children
() const
Returns a list of child objects.
More...
bool
connect
(const
QObject
*
sender
, const char *signal, const char *member,
Qt::ConnectionType
type
=
Qt::AutoConnection
) const
bool
disconnect
(const char *signal=0, const
QObject
*receiver=0, const char *member=0)
bool
disconnect
(const
QObject
*receiver, const char *member=0)
void
dumpObjectInfo
()
Dumps information about signal connections, etc.
More...
void
dumpObjectTree
()
Dumps a tree of children to the debug output.
More...
QList
<
QByteArray
>
dynamicPropertyNames
() const
Returns the names of all properties that were dynamically added to the object using
setProperty()
.
More...
virtual bool
event
(
QEvent
*)
This virtual function receives events to an object and should return true if the event
e
was recognized and processed.
More...
virtual bool
eventFilter
(
QObject
*,
QEvent
*)
Filters events if this object has been installed as an event filter for the
watched
object.
More...
template<typename T >
T
findChild
(const
QString
&aName=
QString
()) const
Returns the child of this object that can be cast into type T and that is called
name
, or 0 if there is no such object.
More...
template<typename T >
QList
< T >
findChildren
(const
QString
&aName=
QString
()) const
Returns all children of this object with the given
name
that can be cast to type T, or an empty list if there are no such objects.
More...
template<typename T >
QList
< T >
findChildren
(const
QRegExp
&re) const
bool
inherits
(const char *classname) const
Returns true if this object is an instance of a class that inherits
className
or a
QObject
subclass that inherits
className
; otherwise returns false.
More...
void
installEventFilter
(
QObject
*)
Installs an event filter
filterObj
on this object.
More...
bool
isWidgetType
() const
Returns true if the object is a widget; otherwise returns false.
More...
void
killTimer
(int id)
Kills the timer with timer identifier,
id
.
More...
virtual const
QMetaObject
*
metaObject
() const
Returns a pointer to the meta-object of this object.
More...
void
moveToThread
(
QThread
*
thread
)
Changes the thread affinity for this object and its children.
More...
QString
objectName
() const
QObject
*
parent
() const
Returns a pointer to the parent object.
More...
QVariant
property
(const char *
name
) const
Returns the value of the object's
name
property.
More...
Q_INVOKABLE
QObject
(
QObject
*
parent
=0)
Constructs an object with parent object
parent
.
More...
void
removeEventFilter
(
QObject
*)
Removes an event filter object
obj
from this object.
More...
void
setObjectName
(const
QString
&
name
)
void
setParent
(
QObject
*)
Makes the object a child of
parent
.
More...
bool
setProperty
(const char *
name
, const
QVariant
&value)
Sets the value of the object's
name
property to
value
.
More...
void
setUserData
(
uint
id,
QObjectUserData
*
data
)
bool
signalsBlocked
() const
Returns true if signals are blocked; otherwise returns false.
More...
int
startTimer
(int interval)
Starts a timer and returns a timer identifier, or returns zero if it could not start a timer.
More...
QThread
*
thread
() const
Returns the thread in which the object lives.
More...
QObjectUserData
*
userData
(
uint
id) const
virtual
~QObject
()
Destroys the object, deleting all its child objects.
More...
Additional Inherited Members
![-](closed.png)
Signals inherited from
QObject
void
destroyed
(
QObject
*=0)
This signal is emitted immediately before the object
obj
is destroyed, and can not be blocked.
More...
![-](closed.png)
Static Public Functions inherited from
QObject
static bool
connect
(const
QObject
*
sender
, const char *signal, const
QObject
*receiver, const char *member,
Qt::ConnectionType
=
Qt::AutoConnection
)
Creates a connection of the given
type
from the
signal
in the
sender
object to the
method
in the
receiver
object.
More...
static bool
connect
(const
QObject
*
sender
, const
QMetaMethod
&signal, const
QObject
*receiver, const
QMetaMethod
&method,
Qt::ConnectionType
type
=
Qt::AutoConnection
)
static bool
disconnect
(const
QObject
*
sender
, const char *signal, const
QObject
*receiver, const char *member)
Disconnects
signal
in object
sender
from
method
in object
receiver
.
More...
static bool
disconnect
(const
QObject
*
sender
, const
QMetaMethod
&signal, const
QObject
*receiver, const
QMetaMethod
&member)
static
uint
registerUserData
()
static
QString
tr
(const char *sourceText, const char *comment=0, int n=-1)
static
QString
trUtf8
(const char *sourceText, const char *comment=0, int n=-1)
![-](closed.png)
Static Public Variables inherited from
QObject
static const
QMetaObject
staticMetaObject
This variable stores the meta-object for the class.
More...
![-](closed.png)
Protected Functions inherited from
QObject
virtual void
childEvent
(
QChildEvent
*)
This event handler can be reimplemented in a subclass to receive child events.
More...
virtual void
connectNotify
(const char *signal)
This virtual function is called when something has been connected to
signal
in this object.
More...
virtual void
customEvent
(
QEvent
*)
This event handler can be reimplemented in a subclass to receive custom events.
More...
virtual void
disconnectNotify
(const char *signal)
This virtual function is called when something has been disconnected from
signal
in this object.
More...
QObject
(
QObjectPrivate
&dd,
QObject
*
parent
=0)
int
receivers
(const char *signal) const
Returns the number of receivers connected to the
signal
.
More...
QObject
*
sender
() const
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns 0.
More...
int
senderSignalIndex
() const
virtual void
timerEvent
(
QTimerEvent
*)
This event handler can be reimplemented in a subclass to receive timer events for the object.
More...
![-](closed.png)
Protected Variables inherited from
QObject
QScopedPointer
<
QObjectData
>
d_ptr
![-](closed.png)
Static Protected Variables inherited from
QObject
static const
QMetaObject
staticQtMetaObject
![-](closed.png)
Related Functions inherited from
QObject
T
qFindChildqFindChildren
(const
QObject
*obj, const
QString
&
name
)()
QList
< T >
qFindChildrenqFindChildren
(const
QObject
*obj, const
QString
&
name
)()
QList
< T >
qFindChildrenqFindChildren
(const
QObject
*obj, const
QRegExp
®Exp)()
T *
qobject_cast
(
QObject
*object)
QObjectList
void *
qt_find_obj_child
(
QObject
*
parent
, const char *
type
, const
QString
&
name
)
Returns a pointer to the object named
name
that inherits
type
and with a given
parent
.
More...
The
QEventLoop
class provides a means of entering and leaving an event loop.
At any time, you can create a
QEventLoop
object and call
exec()
on it to start a local event loop. From within the event loop, calling
exit()
will force
exec()
to return.
-
See also
-
QAbstractEventDispatcher
Definition at line
55
of file
qeventloop.h
.
◆
ProcessEventsFlag
This enum controls the types of events processed by the
processEvents()
functions.
AllEvents
All events. Note that
DeferredDelete
events are processed specially. See
QObject::deleteLater()
for more details.
ExcludeUserInputEvents
Do not process user input events, such as ButtonPress and KeyPress. Note that the events are not discarded; they will be delivered the next time
processEvents()
is called without the ExcludeUserInputEvents flag.
ExcludeSocketNotifiers
Do not process socket notifier events. Note that the events are not discarded; they will be delivered the next time
processEvents()
is called without the ExcludeSocketNotifiers flag.
WaitForMoreEvents
Wait for events if no pending events are available.
X11ExcludeTimers
ExcludeUserInput
WaitForMore
EventLoopExec
DialogExec
DeferredDeletion
deprecated - do not use.
-
See also
-
processEvents()
Enumerator
AllEvents
ExcludeUserInputEvents
ExcludeSocketNotifiers
WaitForMoreEvents
X11ExcludeTimers
DeferredDeletion
EventLoopExec
DialogExec
Definition at line
64
of file
qeventloop.h
.
◆
QEventLoop()
Constructs an event loop object with the given
parent
.
Definition at line
117
of file
qeventloop.cpp
.
122
qWarning
(
"QEventLoop: Cannot be used without QApplication"
);
123
}
else
if
(!
d
->threadData->eventDispatcher) {
The QEventLoop class provides a means of entering and leaving an event loop.
Q_CORE_EXPORT void qWarning(const char *,...)
static QCoreApplication * instance()
Returns a pointer to the application's QCoreApplication (or QApplication) instance.
Q_INVOKABLE QObject(QObject *parent=0)
Constructs an object with parent object parent.
static void createEventDispatcher(QThreadData *data)
Enters the main event loop and waits until
exit()
is called.
Returns the value that was passed to
exit()
.
If
flags
are specified, only events of the types allowed by the
flags
will be processed.
It is necessary to call this function to start event handling. The main event loop receives events from the window system and dispatches these to the application widgets.
Generally speaking, no user interaction can take place before calling
exec()
. As a special case, modal widgets like
QMessageBox
can be used before calling
exec()
, because modal widgets use their own local event loop.
To make your application perform idle processing (i.e. executing a special function whenever there are no pending events), use a
QTimer
with 0 timeout. More sophisticated idle processing schemes can be achieved using
processEvents()
.
-
See also
-
QApplication::quit()
,
exit()
,
processEvents()
Definition at line
181
of file
qeventloop.cpp
.
Referenced by
QTestEventLoop::enterLoop()
,
QScriptEngineDebuggerBackend::event()
,
QThread::exec()
,
QCoreApplication::exec()
,
QCoreApplication::hasPendingEvents()
,
QMenuPrivate::hideMenu()
,
QComboBox::hidePopup()
,
QMenuPrivate::hideUpToMenuBar()
,
QDBusConnectionPrivate::sendWithReply()
,
QHttpThreadDelegate::startRequestSynchronously()
, and
QNetworkSession::waitForOpened()
.
186
if
(
d
->threadData->quitNow)
190
qWarning
(
"QEventLoop::exec: instance %p has already called exec()"
,
this
);
195
++
d
->threadData->loopLevel;
196
d
->threadData->eventLoops.push(
this
);
204
#if defined(QT_NO_EXCEPTIONS)
212
qWarning
(
"Qt has caught an exception thrown from an event handler. Throwing\n"
213
"exceptions from an event handler is not supported in Qt. You must\n"
214
"reimplement QApplication::notify() and catch all exceptions there.\n"
);
218
QEventLoop
*eventLoop =
d
->threadData->eventLoops.pop();
219
Q_ASSERT_X
(eventLoop ==
this
,
"QEventLoop::exec()"
,
"internal error"
);
222
--
d
->threadData->loopLevel;
230
QEventLoop
*eventLoop =
d
->threadData->eventLoops.pop();
231
Q_ASSERT_X
(eventLoop ==
this
,
"QEventLoop::exec()"
,
"internal error"
);
234
--
d
->threadData->loopLevel;
236
return
d
->returnCode;
static QObjectPrivate * get(QObject *o)
The QEventLoop class provides a means of entering and leaving an event loop.
Q_CORE_EXPORT void qWarning(const char *,...)
The QCoreApplication class provides an event loop for console Qt applications.
#define Q_ASSERT_X(cond, where, what)
The QMutexLocker class is a convenience class that simplifies locking and unlocking mutexes...
static QCoreApplication * instance()
Returns a pointer to the application's QCoreApplication (or QApplication) instance.
removePostedEvents
Removes all events of the given eventType that were posted using postEvent() for receiver.
QThread * thread() const
Returns the thread in which the object lives.
#define Q_UNUSED(x)
Indicates to the compiler that the parameter with the specified name is not used in the body of a fun...
bool processEvents(ProcessEventsFlags flags=AllEvents)
Processes pending events that match flags until there are no more events to process.
Tells the event loop to exit with a return code.
After this function has been called, the event loop returns from the call to
exec()
. The
exec()
function returns
returnCode
.
By convention, a
returnCode
of 0 means success, and any non-zero value indicates an error.
Note that unlike the C library function of the same name, this function
does
return to the caller – it is event processing that stops.
-
See also
-
QCoreApplication::quit()
,
quit()
,
exec()
Definition at line
288
of file
qeventloop.cpp
.
Referenced by
QPatternist::NetworkLoop::error()
,
QThread::exit()
,
QCoreApplication::exit()
,
QTestEventLoop::exitLoop()
,
QPatternist::NetworkLoop::finished()
,
QCoreApplication::hasPendingEvents()
, and
quit()
.
291
if
(!
d
->threadData->eventDispatcher)
294
d
->returnCode = returnCode;
296
d
->threadData->eventDispatcher->interrupt();
The QEventLoop class provides a means of entering and leaving an event loop.
Returns true if the event loop is running; otherwise returns false.
The event loop is considered running from the time when
exec()
is called until
exit()
is called.
-
See also
-
exec()
exit()
Definition at line
306
of file
qeventloop.cpp
.
Referenced by
QScriptEngineDebuggerBackend::event()
,
QScriptEngineDebuggerBackend::resume()
, and
QScriptEngineDebuggerBackendPrivate::~QScriptEngineDebuggerBackendPrivate()
.
The QEventLoop class provides a means of entering and leaving an event loop.
Processes pending events that match
flags
until there are no more events to process.
Returns true if pending events were handled; otherwise returns false.
This function is especially useful if you have a long running operation and want to show its progress without allowing user input; i.e. by using the
ExcludeUserInputEvents
flag.
This function is simply a wrapper for
QAbstractEventDispatcher::processEvents()
. See the documentation for that function for details.
Definition at line
148
of file
qeventloop.cpp
.
Referenced by
exec()
, and
processEvents()
.
151
if
(!
d
->threadData->eventDispatcher)
155
return
d
->threadData->eventDispatcher->processEvents(flags);
The QEventLoop class provides a means of entering and leaving an event loop.
static void sendPostedEvents()
Process pending events that match
flags
for a maximum of
maxTime
milliseconds, or until there are no more events to process, whichever is shorter.
This function is especially useful if you have a long running operation and want to show its progress without allowing user input, i.e. by using the
ExcludeUserInputEvents
flag.
Notes:
This function does not process events continuously; it returns after all available events are processed.
Specifying the
WaitForMoreEvents
flag makes no sense and will be ignored.
Definition at line
255
of file
qeventloop.cpp
.
258
if
(!
d
->threadData->eventDispatcher)
266
if
(start.
elapsed
() > maxTime)
268
if
(flags & DeferredDeletion)
The QElapsedTimer class provides a fast way to calculate elapsed times.
qint64 elapsed() const
Returns the number of milliseconds since this QElapsedTimer was last started.
The QEventLoop class provides a means of entering and leaving an event loop.
static void sendPostedEvents()
void start()
Starts this timer.
bool processEvents(ProcessEventsFlags flags=AllEvents)
Processes pending events that match flags until there are no more events to process.
Tells the event loop to exit normally.
Same as exit(0).
-
See also
-
QCoreApplication::quit()
,
exit()
Definition at line
332
of file
qeventloop.cpp
.
Referenced by
QScriptEngineDebuggerBackend::resume()
, and
QScriptEngineDebuggerBackendPrivate::~QScriptEngineDebuggerBackendPrivate()
.
void exit(int returnCode=0)
Tells the event loop to exit with a return code.
-
See also
-
QAbstractEventDispatcher::wakeUp()
Definition at line
317
of file
qeventloop.cpp
.
320
if
(!
d
->threadData->eventDispatcher)
322
d
->threadData->eventDispatcher->wakeUp();
The QEventLoop class provides a means of entering and leaving an event loop.
The documentation for this class was generated from the following files: