我在这里写了一个简短的程序,用于记录和回放我的鼠标动作。我在PyQt
中实现了一个简单的GUI,并让它在过去工作。最近我决定更新代码,通过在主循环中实现QThread
而不是使用processEvents()
来减少“hacky”。
下面的代码执行,但表现得很奇怪。运行代码时,会发生以下情况:
输入1:我按下记录
控制台输出:
isRecording = True
输入2:我按停止
控制台输出:
Stopped!
输入3:我按播放
控制台输出:
isRecording = True
输入4:我按停止
控制台输出:
Stopped!
Play!
Playback complete!
我不清楚为什么在按play
之后程序会再次尝试录制,并且只有在按下停止后才会开始播放。此外,经过一段时间的古怪之后,它继续展现出这种类似的输出,并有微小的偏差。
我的猜测是根据我是否正在调用started
的{{1}}或play
成员函数来重新分配线程信号record
。类。
非常感谢任何见解。
CursorCapture
答案 0 :(得分:0)
经过更多的调查和游戏,我发现了这个问题。将信号重新连接到插槽时,必须确保disconnect()
以前的信号。发生的事情是:
记录。记录信号已连接。 按播放。由于记录信号不是断开连接,它首先触发。然后,播放信号被连接并执行。这种行为堆叠,这就是为什么事情表现得如此奇怪。