1
据我所知,我的问题源于使用wxApp。wxPython:MainLoop()似乎挂起
在一个litte子例程中,我调用一个wx.MessageDialog来请求yes或no。我根据需要检索某个过程的答案。 下面其实我的示例代码工作(尽管它可能是丑陋的),除了对话框保持击中其中一个按钮后打开...
import wx
from os import path
def HasFile(filename):
if path.isfile(filename):
app = wx.App()
dial = wx.MessageDialog(None,
'Die Datei "'+filename+'" wurde gefunden.\nSoll sie eingelesen werden?',
'Bitte antworten',
wx.YES_NO | wx.YES_DEFAULT | wx.ICON_QUESTION)
result = dial.ShowModal()
dial.EndModal(retCode=0)
dial.Destroy()
app.MainLoop()
return result == wx.ID_YES
else:
return False
因此,尽管该计划的其余部分也无论是预期,盒子就坐在那里。 这也似乎是我后来对matplotlib的调用正在产生错误(Tkinter错误是准确的),也许是因为wx的东西?
编辑:我试图通过调用app.Destroy()来结束应用程序。这并没有改变箱子仍然存在的事实。当我发出一个app.IsActive()后,整个程序退出(几乎就像一个sys.exit())!怎么来的?
编辑2:像这样添加一个wxApp不是一个好主意,因为其他脚本也会受到影响。后续的绘图命令不会显示,我不知道如何解决这个问题。因此我决定全部删除DialogBox。