QAbstractEventDispatcher
QAbstractEventDispatcher Class
QAbstractEventDispatcher 提供管理Qt's Event 队列的接口。
事件分发器接受来自系统和其他源的事件。然后将它们送到QCoreApplication和QApplication实例处理。它提供颗粒度的控制。
一个简单例子是: QCoreApplication::processEvents();
使用instance() 返回一个对象的实例。如果你想使用自己的QAbstractEventDispather实例,你必须要在默认的事件分发安装前,使用QCoreApplication::setEventDispatcher() or QThread::setEventDispatcher() 安装。
事件的主循环在调用QCoreApplication::exec()开始,在调用QCoreApplication::exit().
Local event loops can be created using QEventLoop.
Programs that perform long operations can call processEvents() with a bitwise OR combination of various QEventLoop::ProcessEventsFlag values to control which events should be delivered.
QAbstractEventDispatcher also allows the integration of an external event loop with the Qt event loop.
###API
QAbstractEventDispatcher(QObject * parent = 0)
~QAbstractEventDispatcher()
bool filterNativeEvent(const QByteArray & eventType, void * message, long * result)
virtual void flush() = 0
void installNativeEventFilter(QAbstractNativeEventFilter * filterObj)
virtual void interrupt() = 0
virtual bool processEvents(QEventLoop::ProcessEventsFlags flags) = 0
virtual bool registerEventNotifier(QWinEventNotifier * notifier) = 0
virtual void registerSocketNotifier(QSocketNotifier * notifier) = 0
int registerTimer(int interval, Qt::TimerType timerType, QObject * object)
virtual void registerTimer(int timerId, int interval, Qt::TimerType timerType, QObject * object) = 0
virtual QList<TimerInfo> registeredTimers(QObject * object) const = 0
virtual int remainingTime(int timerId) = 0
void removeNativeEventFilter(QAbstractNativeEventFilter * filter)
virtual void unregisterEventNotifier(QWinEventNotifier * notifier) = 0
virtual void unregisterSocketNotifier(QSocketNotifier * notifier) = 0
virtual bool unregisterTimer(int timerId) = 0
virtual bool unregisterTimers(QObject * object) = 0
virtual void wakeUp() = 0