- 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.Statusbar 小部件維護一個訊息堆疊。因此,新訊息會顯示在當前訊息的頂部。如果將其彈出,則先前訊息將再次可見。訊息的來源必須由 context_id 唯一標識。
以下是 gtk.Statusbar 小部件的建構函式:
bar = gtk.Statusbar()
以下是 gtk.Statusbar 類的使用方法:
Statusbar.push(context_id, text) − 此方法將新訊息推送到狀態列的堆疊。
Statusbar.pop(context_id) − 此方法從狀態列的堆疊中刪除具有指定context_id的頂部訊息。
狀態列小部件會發出以下訊號:
| text-popped | 從狀態列訊息堆疊中移除訊息時發出此訊號。 |
| text-pushed | 向狀態列訊息堆疊新增訊息時發出此訊號。 |
以下示例演示了 Statusbar 的功能。頂級視窗包含一個包含兩行的 VBox。上行有一個 Fixed 小部件,其中放置了一個標籤、一個 Entry 小部件和一個按鈕。而在底行,添加了一個 gtk.Statusbar 小部件。
為了向狀態列傳送訊息,需要獲取其 context_id。
id1 = self.bar.get_context_id("Statusbar")
按鈕物件的“clicked”訊號透過回撥函式連線,該函式將訊息推送到狀態列。當在 Entry 小部件內按下 Enter 鍵時,“activate”訊號會被髮出。此小部件連線到另一個回撥函式。
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
兩個回撥函式都使用push()方法在通知區域中顯示訊息。
示例
請觀察以下程式碼:
import gtk
class PyApp(gtk.Window):
def __init__(self):
super(PyApp, self).__init__()
self.set_title("Statusbar demo")
self.set_size_request(400,200)
self.set_position(gtk.WIN_POS_CENTER)
vbox = gtk.VBox()
fix = gtk.Fixed()
lbl = gtk.Label("Enter name")
fix.put(lbl, 175, 50)
txt = gtk.Entry()
fix.put(txt, 150, 100)
btn = gtk.Button("ok")
fix.put(btn, 200,150)
vbox.add(fix)
self.bar = gtk.Statusbar()
vbox.pack_start(self.bar, True, False, 0)
id1 = self.bar.get_context_id("Statusbar")
btn.connect("clicked", self.on_clicked, id1)
txt.connect("activate", self.on_entered, id1)
self.add(vbox)
self.connect("destroy", gtk.main_quit)
self.show_all()
def on_clicked(self, widget, data=None):
self.bar.push(data, "Button clicked
def on_entered(self, widget, data):
self.bar.push(data, "text entered")
PyApp()
gtk.main()
執行上述程式碼後,將顯示以下輸出:
嘗試在文字框中輸入文字並按 Enter 鍵,檢視狀態列中的“已輸入文字”訊息。
廣告