私は Qt プラットフォームの C++ プログラマーです。
イベント ループはどのウィジェットにイベント (主にマウス/キーボード イベント) を送信するかをどのように「認識」するのでしょうか? マウス座標と Z オーダーに基づいて実行されますか? キーボードからのイベントはどうですか?
ありがとう
私は Qt プラットフォームの C++ プログラマーです。
イベント ループはどのウィジェットにイベント (主にマウス/キーボード イベント) を送信するかをどのように「認識」するのでしょうか? マウス座標と Z オーダーに基づいて実行されますか? キーボードからのイベントはどうですか?
ありがとう
それはわからない。
イベントをキャプチャーする場合は、イベントをキャプチャーするか、イベントの受け渡しを許可するイベント フィルターを作成する必要があります。
これは、私が以前に作成した非常に単純なイベント フィルターです。
bool OGL_widget::eventFilter(QObject *obj, QEvent *event) {
switch (event->type()) {
case QEvent::KeyRelease:
case QEvent::KeyPress: {
QKeyEvent *key = static_cast<QKeyEvent*> (event);
if (!key->isAutoRepeat())
key_event_queue << *key;
}
break;
case 1001:
case 1002: {
Savestate_event *save = static_cast<Savestate_event*> (event);
save_event_queue << *save;
}
break;
}
return QObject::eventFilter(obj, event);
}
Qt docs でよく書かれたイベントの記事をご覧ください。