PyGTK - ToggleButton 類



ToggleButton 小部件是一個具有兩種狀態的 gtk.Button —— **按下或啟用**(或開啟)狀態和**正常或非啟用**(或關閉)狀態。每次按下按鈕時,狀態都會交替切換。也可以透過 `set_active()` 方法以程式設計方式更改 ToggleButton 的狀態。要切換按鈕的狀態,還可以使用 `toggled()` 方法。

gtk.ToggleButton 類具有以下建構函式:

gtk.ToggleButton(label = None, use_underline = True)

這裡,`label` 是要在按鈕上顯示的文字。`use_underline` 屬性如果為 True,則文字中的下劃線表示下一個字元應加下劃線並用作記憶助記符加速鍵。

下表列出了一些 gtk.ToggleButton 類的重要方法:

set_active() 這將 **active** 屬性設定為 **True**(啟用或按下或開啟)或 **False**(非啟用或正常或關閉)
get_active() 這將檢索按鈕的狀態
toggled() 這會在 togglebutton 上發出“toggled”訊號。

ToggleButton 小部件發出以下訊號:

Toggled 當 togglebutton 狀態透過程式設計方式或使用者操作發生更改時,將發出此訊號。

以下程式碼演示了 ToggleButton 小部件的使用。

兩個 ToggleButton 和 Label 小部件放置在 VBox 容器中。Button1 發出的 toggled 訊號連線到回撥函式 `on_toggled()`。在此函式中,如果 Button1 的狀態為 False,則將 Button2 的狀態設定為 True,反之亦然。

if self.btn1.get_active() == True:
   self.btn2.set_active(False)
else:
   self.btn2.set_active(True)

它在 Label 上顯示按鈕的瞬時狀態。

示例

觀察以下程式碼:

import gtk

 PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("Toggle Button")
      self.set_default_size(250, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      
      vbox = gtk.VBox()
      self.btn1 = gtk.ToggleButton("Button 1")
      self.btn1.connect("toggled", self.on_toggled)
      self.btn2 = gtk.ToggleButton("Button 2")
      self.lbl = gtk.Label()
      
      vbox.add(self.btn1)
      vbox.add(self.btn2)
      vbox.add(self.lbl)
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
   
   def on_toggled(self, widget, data = None):
      if self.btn1.get_active() == True:
         self.btn2.set_active(False)
      else:
         self.btn2.set_active(True)
         state = "Button1 : "+str(self.btn1.get_active())+" 
         Button2 : "+str(self.btn2.get_active())
         self.lbl.set_text(state)
if __name__ == '__main__':
   PyApp()
   gtk.main()

以上程式碼生成以下輸出:

Toggle Button
廣告
© . All rights reserved.