3
我是一名在wxPython/Python中開發應用程序的新程序員。我收到如下按鈕事件的不一致結果。wxPython按鈕事件在Windows和Linux中顯示不一致的結果
def OnButton1Button(self, event):
self.textCtrl9.AppendText(" 1st instance\n")
time.sleep(5)
self.textCtrl9.AppendText(" 2nd instance\n")
它應該打印1st instance
再經過延時5秒再次打印2nd instance
。這在Windows操作系統中工作正常,但在Linux中,按下按鈕5秒鐘後,我同時獲得1st instance
& 2nd instance
(同時)。
我真的很困惑。有誰可以請建議我一些解決方案。
在此先感謝。
您是否在'sleep()'之前嘗試了'self.textCtrl9.Update()'? – kraymer
'wx.Yield()'在睡眠之前應該讓第一個追加做它的事情。不幸的是,我無法解釋不同的行爲。順便說一句我認爲預期的行爲是,他們都在最後處理(它不是同步的,行動排隊等待MainLoop應用程序處理和睡眠被阻止,從而阻止任何事件得到處理 - 這就是爲什麼應用程序會迴應這種睡眠5)也許wx能夠卸載一些工作到窗口處理它,而你的應用程序被阻止 - 只是一個猜測 – GP89
@ kraymer -self.textCtrl9.Update()不能解決問題.. 。但是wx.Yield()解決了這個問題。謝謝kraymer&GP89 – Sanjit