Python的Tkinter中的Windows进度条

8
有没有办法在Python的Tkinter、bwidget或其他类似的工具中显示Windows默认的进度条?我已经知道了bwidget.ProgressBar,但它会产生一个丑陋的进度条,而我想要显示一个有效的Windows进度条-绿色的发光进度条。

http://imageshack.us/photo/my-images/853/unledtph.png/

我需要这个功能因为这样Windows会自动在任务栏中显示我的程序的进度,而且看起来更好。

3个回答

10
如果您正在使用现代(2.7+)版本的Tkinter,您可以尝试使用ttk.ProgressBar,它是Tkinter的一部分。

+1 感谢您纠正我过时的误解。 - David Heffernan

8
您可以单独安装 pyttk 模块。
from Tkinter import *
import ttk
root = Tk()
progressbar = ttk.Progressbar(orient=HORIZONTAL, length=200, mode='determinate')
progressbar.pack(side="bottom")
progressbar.start()
root.mainloop()

就任务栏功能而言,目前Tkinter还没有这个功能(至少据我所知)。您需要利用Windows API来实现。虽然这个问题是针对PyQt的,但其中的答案应该会有帮助。希望能帮到您。


哇!好多了!但它仍然不完全像Windows显示的那样。因此,它也不会出现在我的任务栏中。你知道如何改进它吗? - speller
@speller,我更新了我的答案,并为您的任务栏问题提供了更多信息。 - Bryan
好的,非常有用。但我更关心进度条是否能像普通的Windows进度条一样发光 - 你知道如何实现吗? - speller
完成后如何停止它? - JShoe
@JShoe:调用 progressbar.stop() - martineau

0

最简单的解决方案似乎是使用带有Python 2.7和3.1中包含的tkinter.ttk模块的主题Tk。进度条小部件就是你想要的。

由于您似乎正在考虑其他框架,您可以查看Qt或wxWidgets,它们看起来本地化并且具有出色的Python绑定。


问题是我已经有一个完整的运作中应用程序,使用Tkinter - 我只想添加一个进度条。如果我想知道哪个Python模块应该用于GUI编程 - 我会问这个问题。 - speller
@speller 两个答案都指向了tkinter.ttk。你在问题中也提到了“是否有任何方式在Python的Tkinter、bwidget或类似工具中”,我理解为答案不仅限于Tkinter。无论如何,Bryan纠正了我的看法,现代的Tkinter确实更好。 - David Heffernan
标题清楚地说明了“Python的Tkinter”。bwidget与Tkinter一起工作,只是为其添加功能,但如果我没有表达清楚,我很抱歉。无论如何 - 我明白你们两个都不知道如何在2.6的Tkinter中实现它 - 所以谢谢 :) - speller
@speller 我只是想帮忙。像“如果我想知道GUI编程应该使用哪个Python模块,我会问那个问题”和“标题清楚地说了Python的Tkinter”,这样的评论让我不想再继续帮助了。 - David Heffernan
对不起,我不是有意冒犯你的。 - speller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接