我正在尝试运行一个进度对话框,它不仅在计时器上,而且根据上传到服务器的文件的状态进行更新。我不在乎进度条是如何在视觉上表示的,我只是希望它准确反映它正在跟踪的过程。我已经尝试使用while
并且if
在thread.isAlive()
进程运行时这不会给我一个活动栏。这是我正在使用的栏以及被调用的线程的来源。
class ProgBar(wx.Frame):
def __init__(self):
wx.Frame.__init__(
self, None, wx.ID_ANY, "Please wait."
)
self.Centre()
max = 250
dlg = wx.ProgressDialog(
"Please wait.",
"Please wait while your request is processed.",
maximum = max,
parent=self,
style = wx.PD_CAN_ABORT
|wx.PD_APP_MODAL
|wx.PD_AUTO_HIDE
)
keepGoing = True
count = 0
while keepGoing and count < max:
count += 1
wx.MilliSleep(50)
if count >= max / 2:
(keepGoing, skip) = dlg.Update(count)
else:
(keepGoing, skip) = dlg.Update(count)
dlg.Destroy()
和线程...
def UploadToServer(self, event):
if PepTalkSource is None:
dlg = wx.MessageDialog(self,
"You must attach a Pep Talk file!",
"Missing Attachments!", wx.OK|wx.ICON_QUESTION)
result = dlg.ShowModal()
dlg.Destroy()
else:
if os.path.isdir(
r"\\server\address\goes\here"
):
ThreadOne = FuncThread(CopyMove, ())
ThreadOne.start()
dlg = ProgBar()
ThreadOne.join()
else:
dlg = wx.MessageDialog(self,
"The server could not be reached. Please visit the Help Menu.",
"Server Unavailable", wx.OK|wx.CANCEL|wx.ICON_QUESTION)
result = dlg.ShowModal()
dlg.Destroy()
我什至试图放弃课程并将对话框直接插入函数中,但没有运气。任何帮助将不胜感激。