2
QtでQEventの進行を遅らせる方法はありますか?コードのQt QEventを遅延させる方法はありますか?
この作品はちょうど私が何をしたいのかをお見せ:
QList<QEvent*> waited_events;
...
bool MyQWidget::event(QEvent * event)
{
if (event->type() == QEvent::KeyPress)
{
waited_events.append(event);
QTimer::singleShot(100, this, SLOT(timer()));
return true;
} else
return QWidget::event(event);
}
...
void MyQWidget::timer()
{
if (!waited_actions.isEmpty())
{
QEvent* event = waited_events.takeFirst();
QWidget::event(event);
}
}
ありがとう!
これで動作しないのは何ですか? –
この方法を使用できますが、新しいイベントを作成する必要があります。 QCoreApplication :: postEvent/sendEventを使用して処理することができます。 –
@LucaCarlon 'timer()'関数が呼び出されるまでに退避したQEvent *オブジェクトは破棄されたため、これは機能しません。 – Chris