嗨,大家尝试了一切,现在我问你的建议。
我无法隐藏我的留言箱。
代码是:
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分钟才能完成。那时候消息框会出现在屏幕上,我想让它隐藏起来,直到安装过程完成。 我试着隐藏,将来调用,关闭,禁用..但每次我得到'int对象没有属性“”。
答案 0 :(得分: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'
答案 1 :(得分:0)
消息框必须在wxMessageBox()
返回时隐藏和销毁,此处必须有其他内容。
通常,如果您想确保已处理所有待处理事件(因此确实需要重新绘制/调整大小/关闭所有窗口),请使用wx.CallAfter()
启动长时间运行的进程在稍后的时间。
当然,从GUI程序运行几分钟的阻塞操作无论如何都是个坏主意,但这是另一个故事......