- 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.Hscrollbar 和 gtk.Vscrollbar 小部件的抽象基類。兩者都與 Adjustment 物件關聯。捲軸滑塊的位置由滾動調整器控制。調整器物件的屬性用法如下:
| lower | 滾動區域的最小值 |
| upper | 滾動區域的最大值 |
| value | 表示捲軸的位置,必須在 lower 和 upper 之間 |
| page_size | 表示可見可滾動區域的大小 |
| step_increment | 單擊小步進箭頭時滾動的距離 |
| page_increment | 按下Page Up 或Page Down 鍵時滾動的距離 |
以下程式顯示一個 HScale 和一個 HScrollbar 小部件,它們放置在一個 VBox 中,並新增到頂級視窗。它們每個都與一個 adjustment 物件關聯。
adj1 = gtk.Adjustment(0, 0, 101, 0.1, 1, 1) self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
gtk.HScale 小部件是一個與 adj1 相連的滑塊控制元件。其更新策略、繪圖值的數目和位置設定如下:
scale1 = gtk.HScale(adj1) scale1.set_update_policy(gtk.UPDATE_CONTINUOUS) scale1.set_digits(1) scale1.set_value_pos(gtk.POS_TOP) scale1.set_draw_value(True)
gtk.HScrollbar 提供一個水平捲軸。它與 adj2 物件關聯。其更新策略也設定為 CONTINUOUS。
self.bar1 = gtk.HScrollbar(self.adj2) self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
為了顯示捲軸的瞬時值,調整器物件 — adj2 的“value-changed”訊號連線到回撥函式on_scrolled()。該函式檢索調整器物件的 value 屬性並在捲軸下方的標籤上顯示它。
self.adj2.connect("value_changed", self.on_scrolled)
def on_scrolled(self, widget, data = None):
self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
示例
觀察以下程式碼:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Range widgets Demo")
self.set_default_size(250, 200)
self.set_position(gtk.WIN_POS_CENTER)
adj1 = gtk.Adjustment(0.0, 0.0, 101.0, 0.1, 1.0, 1.0)
self.adj2 = gtk.Adjustment(10,0,101,5,1,1)
scale1 = gtk.HScale(adj1)
scale1.set_update_policy(gtk.UPDATE_CONTINUOUS)
scale1.set_digits(1)
scale1.set_value_pos(gtk.POS_TOP)
scale1.set_draw_value(True)
vb = gtk.VBox()
vb.add(scale1)
lbl1 = gtk.Label("HScale")
vb.add(lbl1)
self.bar1 = gtk.HScrollbar(self.adj2)
self.bar1.set_update_policy(gtk.UPDATE_CONTINUOUS)
vb.add(self.bar1)
self.lbl2 = gtk.Label("HScrollbar value: ")
vb.add(self.lbl2)
self.adj2.connect("value_changed", self.on_scrolled)
self.add(vb)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_scrolled(self, widget, data=None):
self.lbl2.set_text("HScrollbar value: "+str(int(self.adj2.value)))
if __name__ == '__main__':
PyApp()
gtk.main()
以上程式碼將生成以下輸出:
廣告