0
我有運行WX Python GUI的主線程。主GUI爲用戶提供了一個圖形界面來選擇腳本(映射到python函數)和一個'Start'按鈕,該按鈕生成第二個線程(Thread#2)來執行選定的腳本。我遇到的問題是我無法獲得新的WX GUI(GUI2)來彈出並給用戶輸入數據的能力。從產生線程實例化新的WX Python GUI
# Function that gets invoked by Thread #2
def scriptFunction():
# Code to instantiate GUI2; GUI2 contains wx.TextCtrl fields and a 'Done' button;
# When 'Done' button is clicked, data entered in fields are process and second GUI is destroyed
gui2Frame = Gui2Frame(None, "Enter Data Gui")
gui2Frame.Show(True)
# This is where I need help. Cannot figure out how to pend for user input;
# In this example; my 'Done' button sets the Event flag
verifyEvent = threading.Event()
verifyEvent.wait(10)
# Process entered data time
processData()
目前,這種方法鎖定GUI2 10秒。這是有道理的,因爲產生的線程被鎖定。用time.sleep()實現while循環,也是這樣。我看着第三個線程產生,只是爲了處理GUI2,但我又回到不知道如何讓GUI2處於活動狀態。有什麼建議麼?此外,請不要將多線程體系結構更改爲一個線程;謝謝。
謝謝,我感謝您的迴應,回答爲什麼我不能得到它的工作以及解決方法是什麼。我現在正在讀取子進程,但是,我很難讓GUI2子進程返回數據到第一個進程(線程#2)。我目前有以下代碼。 ---對不起,再給我幾分鐘,試圖想象如何進入一個新行以發佈一個乾淨的帖子 –
由於我的後續問題的複雜性,我發佈它作爲一個新的問題。如果你不介意,你可以看看我的新職位邁克。謝謝! http://stackoverflow.com/questions/10689186/returning-data-to-the-original-process-that-invoke-a-subprocess –