0
我已經使用Qkeyevent在QT中定義了關鍵的A和B事件。當我在鍵盤上按A時,會執行花費1秒鐘的過程A()。如果我在鍵盤上按B,它會執行過程B()。我想通過處理A()來更新全局值,並在進程B()中獲取值。然而過程A()花費1秒鐘。如果我這麼快按下B鍵,我會得到錯誤的值。如何等待A過程完成,以便我在QT中快速推B。如何等待keyevent直到在QT中完成進程
int g = 3;
A() {
...
//cost 1 second
g = 4;
}
B() {
cout << g;
}
首先,我推A,然後按b。如果我在1s內壓入B AFER推B,我會得到G = 3
謝謝你的評論。我只是在主線程中寫了keyPressEvent。我應該使用線程嗎? –
@Moto傑克,這不是一個評論的答案:)調用B()時,確保'A()'完成,可以保證'g'變量已經改變。 – WindyFields
謝謝。我會嘗試使用線程 –