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
谢谢。我会尝试使用线程 –