2013-02-23 45 views
0

嗨,大家試了一切,現在我問你的建議。無法隱藏wxpython的消息框

我無法隱藏我的留言箱。

代碼:

ans = wx.MessageBox("length = %s , height = %s " % (str(len), str(ht))) 

    if ans = wx.Yes: 

     subprocess.call("pword | sudo -S ./Install.sh %s %s" % (str(len),str(ht)))  

3號線大約需要6-7分鐘即可完成.till那個時候消息框會在屏幕上,我希望把它隱藏,直到安裝過程完成得。 我試過隱藏,未來調用,關閉,禁用..但每次我得到'int對象沒有屬性「。

回答

0

消息框必須隱藏和時間wxMessageBox()回報破壞,必須有別的東西怎麼回事。

一般來說,如果您想要確保所有待處理事件都已處理完畢(並且所有窗口應該重新繪製/調整大小/關閉都確實處理完畢),請使用wx.CallAfter()輕輕啓動您的長時間運行過程晚點。

當然,從GUI程序運行幾分鐘的阻塞操作無論如何都是一個壞主意,但這是另一回事......

0

如果您需要對消息框進行更多控制,請改爲使用消息對話框。消息框直接返回答案,所以你無法控制窗口。創建消息對話框可讓您控制窗口。

下面是一個簡單的例子:

import wx 

app = wx.App(False) 
box = wx.MessageDialog(None, 'Yes or No?', caption='Dialog Title', style=wx.YES_NO | wx.YES_DEFAULT) 
result = box.ShowModal() 
box.Destroy() 
if result == wx.ID_YES: 
    print 'yes' 
else: 
    print 'no' 
+0

感謝您的回答。 – 2013-02-23 09:01:27

+0

但現在我有麻煩顯示被摧毀的面板時,我按「否」 – 2013-02-23 09:02:46

+0

該答案中的代碼與內部的wxMessageBox()函數完全相同,因此不能更改任何內容。 – 2013-02-23 12:56:40