wx.progress对话框用计数器代替tim

2024-09-27 07:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在wxpython应用程序中包含一个进度条,但是我发现的示例使用了一个从固定时间长度开始倒数的计时器。由于我不知道在给定的计算机上运行我的进程需要多长时间,所以我希望进度条在每一个特定步骤完成时更新。在

我修改了一些示例代码来实现这一点,但是它抛出了以下错误:

path/ProgressDialog.py", line 31, in OnTimer
    (keepGoing, skip) = self.dialog.Update(self.count)
File "C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_windows.py", line 2971, in Update
return _windows_.ProgressDialog_Update(*args, **kwargs)
PyAssertionError: C++ assertion "value <= m_maximum" failed at ..\..\src\generic\progdlgg.cpp(337) in wxProgressDialog::Update(): invalid progress value

当我在下面的代码中添加try…except语句时,它不会抛出错误,但是我认为一定有一种更好的方法可以做到这一点,而不是简单地在错误消息上画个遮羞布。在

有人能告诉我如何修复我的代码吗?

我的代码如下,包括“删除”错误的try…except语句:

^{pr2}$

注意:当我测试这段代码时,我使用while循环来模拟逐步执行过程步骤。但在实际实现中,我会在每次执行之前都有一个特定的过程步骤自我计数增加1。


Tags: 代码进度条inpyself示例valuewindows
1条回答
网友
1楼 · 发布于 2024-09-27 07:25:10

您的progressMax为7,循环循环,而{}小于8,但您在循环的第一行增加{},这样就有了一个迭代,其中{}是8,这是进度条的非法值。在

将while条件更改为count < 7(方便地count < progressMax),或者将count增量移到循环的末尾。在

相关问题 更多 >

    热门问题