- PyGTK 教程
- PyGTK - 主页
- PyGTK - 简介
- PyGTK - 环境
- PyGTK - 你好世界
- PyGTK - 重要类
- PyGTK - 窗口类
- PyGTK - 按钮类
- PyGTK - 标签类
- PyGTK - 入门级
- PyGTK - 信号处理
- PyGTK - 事件处理
- PyGTK - 容器
- PyGTK - 盒子类
- PyGTK - ButtonBox 类
- PyGTK - 对齐类
- PyGTK - EventBox 类
- PyGTK - 布局类
- PyGTK - 组合框类
- PyGTK - ToggleButton 类
- PyGTK - CheckButton 类
- PyGTK - 单选按钮类
- PyGTK - 菜单栏、菜单和菜单项
- PyGTK - 工具栏类
- PyGTK - 调整类
- PyGTK - 范围类
- PyGTK - 规模类
- PyGTK - 滚动条类
- PyGTK - 对话框类
- PyGTK - 消息对话框类
- PyGTK - AboutDialog 类
- PyGTK - 字体选择对话框
- PyGTK - 颜色选择对话框
- PyGTK - 文件选择器对话框
- PyGTK - 笔记本类
- PyGTK - 框架类
- PyGTK - AspectFrame 类
- PyGTK - TreeView 类
- PyGTK - 窗格类
- PyGTK - 状态栏类
- PyGTK - ProgressBar 类
- PyGTK - 视口类
- PyGTK - 滚动窗口类
- PyGTK - 箭头类
- PyGTK - 图像类
- PyGTK - DrawingArea 类
- PyGTK - SpinButton 类
- PyGTK - 日历类
- PyGTK - 剪贴板类
- PyGTK - 标尺类
- PyGTK - 超时
- PyGTK - 拖放
- PyGTK 有用资源
- PyGTK - 快速指南
- PyGTK - 有用的资源
- PyGTK - 讨论
PyGTK - ProgressBar 类
进度条用于向用户提供长时间运行的进程的视觉指示。gtk.ProgressBar 小部件可以在两种模式下使用 - 百分比模式和活动模式。
当可以准确估计有多少工作有待完成时,可以以百分比模式使用进度条,并且用户会看到显示已完成工作百分比的增量条。另一方面,如果可以准确地确定要完成的工作量,则在活动模式下使用进度条,其中进度条通过显示来回移动的块来显示活动。
以下构造函数初始化 gtk.ProgressBar 类的小部件 -
pb = gtk.ProgressBar()
gtk.ProgressBar 使用以下方法来管理功能 -
ProgressBar.pulse() - 这会推动进度条以指示已经取得了一些进展,但您不知道有多少。此方法还将进度条模式更改为“活动模式”,其中块来回弹跳。
ProgressBar.set_fraction(fraction) - 这会导致进度条“填充”由fraction指定的条形部分。分数的值应介于 0.0 和 1.0 之间。
ProgressBar.set_pulse_setup() - 设置总进度条长度的部分(由fraction指定),以便为每次调用pulse()方法移动弹跳块。
ProgressBar.set_orientation() - 设置进度条的方向。它可以设置为以下常量之一:
gtk.PROGRESS_LEFT_TO_RIGHT
gtk.PROGRESS_RIGHT_TO_LEFT
gtk.PROGRESS_BOTTOM_TO_TOP
gtk.PROGRESS_TOP_TO_BOTTOM
在下面的程序中,gtk.ProgressBar 小部件在活动模式下使用。因此,进度的初始位置通过set_fraction()方法设置为 0.0 。
self.pb = gtk.ProgressBar() self.pb.set_text("Progress") self.pb.set_fraction(0.0)
为了在 100 毫秒后将进度增加 1%,声明了一个计时器对象,并设置了一个回调函数,每隔 100 毫秒调用一次,以便更新进度条。
self.timer = gobject.timeout_add (100, progress_timeout, self)
这里,progress_timeout()是回调函数。它将set_fraction()方法的参数增加1%,并更新进度栏中的文本以显示完成的百分比。
def progress_timeout(pbobj): new_val = pbobj.pb.get_fraction() + 0.01 pbobj.pb.set_fraction(new_val) pbobj.pb.set_text(str(new_val*100)+" % completed") return True
例子
观察以下代码 -
import gtk, gobject def progress_timeout(pbobj): new_val = pbobj.pb.get_fraction() + 0.01 pbobj.pb.set_fraction(new_val) pbobj.pb.set_text(str(new_val*100)+" % completed") return True class PyApp(gtk.Window): def __init__(self): super(PyApp, self).__init__() self.set_title("Progressbar demo") self.set_size_request(300,200) self.set_position(gtk.WIN_POS_CENTER) fix = gtk.Fixed() self.pb = gtk.ProgressBar() self.pb.set_text("Progress") self.pb.set_fraction(0.0) fix.put(self.pb,80,100) self.add(fix) self.timer = gobject.timeout_add (100, progress_timeout, self) self.connect("destroy", gtk.main_quit) self.show_all() PyApp() gtk.main()
上面的代码将生成以下输出 -
要在活动模式下使用进度条,请将回调函数更改为以下并运行 -
def progress_timeout(pbobj): pbobj.pb.pulse() return True
进度条内的块的来回移动将显示活动的进度。