我是 Python 的新手(实际上是 PC 开发的新手),我想知道我应该如何正确解决在我正在编写的 Windows 应用程序中使用 FileDialog 时遇到的问题......
到目前为止,这是我的代码的相关部分......
def SelectLogs(self, event):
dir = os.getcwd()
paths = []
open_dlg = wx.FileDialog(self, message='Select log file',
defaultDir=dir, style=wx.OPEN | wx.CHANGE_DIR | wx.MULTIPLE)
self.splitter.Refresh(True)
if open_dlg.ShowModal() == wx.ID_OK:
paths = open_dlg.GetPaths()
open_dlg.Destroy()
self.splitter.Refresh()
self.RetrieveLogData(paths)
def RetrieveLogData(self, paths):
count = 0
loglines = []
self.tc2.WriteText('Loading selected logs...')
paths.sort()
for log in paths:
read_data = []
f = open(log, 'r')
self.tc2.WriteText('\r\n ' + log)
read_data = f.readlines()
f.close()
count = count + 1
for line in read_data:
loglines.append(line)
self.tc1.WriteText(line)
self.tc2.WriteText('\r\nCompleted loading ' + str(count) + ' log(s)')
我的问题是,即使我调用 open_dlg.Destroy() 和 self.splitter.Refresh() 我仍然有 FileDialog 的残余显示在我的 wx.TextCtrl (tc2) 对象的下部(tc1 位于上半部分下半部分的分离器和 tc2)。
一旦文件完全加载并且内容显示在 tc1 中,然后 tc2 就会刷新并按我的预期显示。
我尝试在 tc1 和 tc2 上而不是在拆分器上调用刷新方法,但这似乎没有任何效果。
欢迎任何有用的建议。谢谢。