Qkeyeventを使用してQTでキーAイベントとBイベントを定義しています。私がキーボードでAを押すと、1秒間を費やすプロセスA()が実行されます。キーボードでBを押すと、プロセスB()が実行されます。 A()を処理してグローバル値を更新し、プロセスB()で値を取得したい。しかし、プロセスA()は1秒間を費やします。私がキーBをすばやく押すと間違った値を取得します.QTでBをすばやく押すと、プロセスA()が終了するまで待つことができます。QTでプロセスが終了するまでkeyeventを待つ方法
int g = 3;
A() {
...
//cost 1 second
g = 4;
}
B() {
cout << g;
}
まず、私はあなたの実装の詳細を知らないが、私は希望私はBを押してのafer 1秒でBを押しB.Ifを押し、私は= 3
あなたのコメントありがとう。私はちょうどメインのthread.should私はスレッドを使用する必要がkeyPressEventを書くか? –
@Moto Jack、これは解答ではありません:) 'B()'が呼び出されたときに 'A()'が終了することを保証するため、 'g'変数が既に変更されていることを保証します。 – WindyFields
ありがとうございます。私はスレッドを使用しようとします –