進度條
什么是進度條
進度條
上面的就是進度條
下面是兩個按鈕, 控制他的進度, 增加 10% 和 降低 10%
創(chuàng)建
self.progress_bar = Gtk.ProgressBar()
上面示例的實現
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
super(MyWindow, self).__init__(title="Stack And Stack Switch")
self.main_box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.add(self.main_box)
self.sub_box = Gtk.Box()
self.progress = Gtk.ProgressBar(fraction=0.6)
self.btn_inc = Gtk.Button(label="Inc 10%")
self.btn_dec = Gtk.Button(label="Dec 10%")
self.main_box.pack_start(self.progress, True, False, 0)
self.main_box.pack_start(self.sub_box, True, False, 0)
self.sub_box.pack_start(self.btn_inc, True, True, 0)
self.sub_box.pack_start(self.btn_dec, True, True, 0)
self.btn_inc.connect("clicked", self.on_click)
self.btn_dec.connect("clicked", self.on_click)
def on_click(self, widget):
label = widget.get_label()
if label == "Inc 10%":
self.progress.set_fraction(self.progress.get_fraction() + 0.1)
else:
self.progress.set_fraction(self.progress.get_fraction() - 0.1)
win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
常用屬性
- text 在進度條上顯示的文字
- ellipsize 省略, 當進度條長度不足以顯示文字時省略, 接受Pango.EllipsizeMode(前面講標簽時說過)
- fraction 進度 0 - 1 float
- show_text 是否展示文字 bool
- pause_step
常用方法
- pause() 暫停進度條
配合pause_step使用
每次調用 pause() 進度條向前移動 pause_step個長度
- 其他都是設置屬性的方法
旋轉控件 (spinner)
什么是Spinner
Spinner 1
Spinner 2
上面的是spinner, 下面用了一個toggle button 來控制是否旋轉
創(chuàng)建
self.spinner = Gtk.Spinner()
上面示例的實現
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class MyWindow(Gtk.Window):
def __init__(self):
super(MyWindow, self).__init__(title="Stack And Stack Switch")
self.spinner = Gtk.Spinner()
self.toggle = Gtk.ToggleButton(label="Toggle Spin")
self.box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
self.box.pack_start(self.spinner, True, True, 0)
self.box.pack_start(self.toggle, True, False, 0)
self.add(self.box)
self.toggle.connect("toggled", self.on_toggle)
def on_toggle(self, widget):
active = widget.get_active()
if active:
self.spinner.start()
else:
self.spinner.stop()
win = MyWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
屬性
- 只有一個
- active 是否旋轉 bool
方法
- 只有兩個
- start() 開始
- stop() 停止
這里通常會用到定時器, 以后講
歡迎留言, 下篇文章講數據展示 Treeview