- PyGTK 教程
- PyGTK - 首頁
- PyGTK - 簡介
- PyGTK - 環境
- PyGTK - Hello World
- PyGTK - 重要類
- PyGTK - 視窗類
- PyGTK - 按鈕類
- PyGTK - 標籤類
- PyGTK - 輸入框類
- PyGTK - 訊號處理
- PyGTK - 事件處理
- PyGTK - 容器
- PyGTK - 箱式容器類
- PyGTK - 按鈕框類
- PyGTK - 對齊類
- PyGTK - 事件框類
- PyGTK - 佈局類
- PyGTK - 組合框類
- PyGTK - 切換按鈕類
- PyGTK - 複選框類
- PyGTK - 單選按鈕類
- PyGTK - 選單欄、選單和選單項
- PyGTK - 工具欄類
- PyGTK - 調整類
- PyGTK - 範圍類
- PyGTK - 刻度類
- PyGTK - 捲軸類
- PyGTK - 對話方塊類
- PyGTK - 訊息對話方塊類
- PyGTK - 關於對話方塊類
- PyGTK - 字型選擇對話方塊
- PyGTK - 顏色選擇對話方塊
- PyGTK - 檔案選擇對話方塊
- PyGTK - 筆記本類
- PyGTK - 框架類
- PyGTK - 帶縱橫比的框架類
- PyGTK - 樹形檢視類
- PyGTK - 分割窗格類
- PyGTK - 狀態列類
- PyGTK - 進度條類
- PyGTK - 視口類
- PyGTK - 帶捲軸的視窗類
- PyGTK - 箭頭類
- PyGTK - 圖片類
- PyGTK - 繪圖區類
- PyGTK - 旋轉按鈕類
- PyGTK - 日曆類
- PyGTK - 剪貼簿類
- PyGTK - 標尺類
- PyGTK - 超時
- PyGTK - 拖放
- PyGTK 有用資源
- PyGTK - 快速指南
- PyGTK - 有用資源
- PyGTK - 討論
PyGTK - 進度條類
進度條用於向用戶直觀地指示長時間執行的程序的進度。gtk.ProgressBar 小部件可以用於兩種模式——百分比模式和活動模式。
當能夠準確估計有多少工作尚待完成時,進度條可以使用百分比模式,使用者會看到一個遞增的條形,顯示已完成工作的百分比。另一方面,如果無法準確確定要完成的工作量,則進度條將使用活動模式,其中條形透過顯示一個左右移動的塊來顯示活動。
以下建構函式初始化 gtk.ProgressBar 類的視窗小部件:
pb = gtk.ProgressBar()
gtk.ProgressBar 使用以下方法來管理功能:
ProgressBar.pulse() - 這會輕微推動進度條,以表明已取得一些進展,但您不知道具體進展了多少。此方法還會將進度條模式更改為“活動模式”,其中一個塊會來回彈跳。
ProgressBar.set_fraction(fraction) - 這會導致進度條“填充”由fraction指定的條形部分。fraction的值應介於 0.0 和 1.0 之間。
ProgressBar.set_pulse_setup() - 這會設定每次呼叫pulse()方法時要移動彈跳塊的總進度條長度的百分比(由fraction指定)。
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
進度條內部塊的來回移動將顯示活動的進度。