0
我使用...甲爲了等待一個外部信號(例如用「wx.MessageDialog」
waitingdlg = wx.MessageDialog(self, 'Waiting for soundcard signal...', 'Test', wx.CANCEL)
waitingdlg.ShowModal()
while inputvolume < 10: # inputvolume is a global variable
# modified by another thread linked to soundcard input
wx.MilliSleep(10)
waitingdlg.Destroy()
...等待對話框:聲卡的輸入電平是高到一定分貝水平)。
我希望wx.MessageDialog
在觸發發生時自動關閉(當inputvolume
變爲>= 10
時)。
但由於waitingdlg.ShowModal()
,while
從來沒有發生! 另一方面,如果沒有ShowModal
,則不顯示對話框。
如何使這個wx.MessageDialog等待外部觸發器自動關閉?
非常感謝! 'wx.MessageDialog'對'Destroy()'沒有反應(順便說一下,爲什麼會這樣?)這樣的恥辱。由於'wx.MessageBox'已準備好可以使用,所以必須自己重新設計整個消息框(帶有文本框,按鈕,'Bind()'等),這真是一種恥辱! – Basj
如果您不想重新設計所有內容,請使用GenericMessageBox –
@Basj請檢查此[鏈接](http://wxpython-users.1045709.n5.nabble.com/Destroy-a-wx-MessageDialog-after-a -given-量之時間td2852005.html)。據說「wx.MessageDialog不是一個真正的wx.Dialog,它只是一個方便的原生API函數 ,因此它並不實現 的大部分wx.Dialog API」。 –