0

単にタイマーではなく、サーバーにアップロードされているファイルのステータスに基づいて更新される進行状況ダイアログを実行しようとしています。プログレス バーがどのように視覚的に表現されるかは気にしません。追跡しているプロセスを正確に反映させたいだけです。私は使用しようとしましwhileifthread.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()

クラスを捨てて、ダイアログを関数に直接挿入しようとしましたが、うまくいきませんでした。どんな助けでも大歓迎です。

4

1 に答える 1