我有一个带有wx.dirPicker控件的Python应用程序,可以手动更改,我需要确保在运行我的代码之前存在所选路径。要做到这一点,我正在使用它:
def m_dirPicker1OnUpdateUI( self, event ):
src_directory = self.m_dirPicker1.GetTextCtrlValue()
if os.path.exists(src_directory)==False:
dlg = wx.MessageDialog( self, "The specified path doesn't exist", "Warning", wx.ICON_ERROR | wx.ICON_EXCLAMATION )
dlg.ShowModal()
#print(dlg.GetReturnCode())
if dlg.GetReturnCode() == 0:
self.Destroy()
它工作正常,检测路径是否存在。
然而,当路径不存在时,会出现消息对话框,但按下OK按钮后我无法关闭它,我不明白为什么。
谢谢。
答案 0 :(得分:1)
我的第一个方法是: 每当有人手动更改wx.dirpicker路径时,我需要确保路径存在,因为我的应用程序会将报告文件导出到该路径。
后来我决定只在有人按“创建报告”按钮时检查路径。为此,我使用以下代码:
try:
if src_directory = self.m_dirPicker1.GetTextCtrlValue():
if os.path.exists(src_directory)==False:
dlg = wx.MessageDialog( self, "The specified path doesn't exist", "Warning", wx.ICON_EXCLAMATION)
dlg.ShowModal()
else:
#run my code to create report file in src_directory path
except:
create report_error file
答案 1 :(得分:0)
我认为你应该在“self.Destroy()”之前调用“dlg.Destroy()”:
result = dlg.ShowModal()
dlg.Destroy()
if result == 0:
self.Destroy()