PyGTK - คลาส ToggleButton

เครื่องมือ ToggleButton เป็น gtk ปุ่มที่มีสองสถานะ - ก pressed or active (หรือบน) สถานะและก normal or inactive (or off)สถานะ. ทุกครั้งที่กดปุ่มสถานะจะสลับกัน นอกจากนี้สถานะของ ToggleButton ยังสามารถเปลี่ยนแปลงทางโปรแกรมได้โดยวิธี set_active () หากต้องการเปลี่ยนสถานะของปุ่มสามารถใช้วิธีการ toggled () ได้เช่นกัน

คลาส gtk.ToggleButton มีตัวสร้างดังต่อไปนี้ -

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

ที่นี่ฉลากคือการทดสอบที่จะแสดงบนปุ่ม คุณสมบัติ use_underline หากเป็นจริงเครื่องหมายขีดล่างในข้อความระบุว่าอักขระตัวถัดไปควรถูกขีดเส้นใต้และใช้สำหรับตัวเร่งการช่วยจำ

วิธีการที่สำคัญบางอย่างของคลาส gtk.ToggleButton มีให้ในตารางต่อไปนี้ -

set_active () สิ่งนี้จะตั้งค่า active คุณสมบัติเป็นมูลค่าถึง True (ใช้งานหรือกดหรือเปิด) หรือ False (ไม่ใช้งานหรือปกติหรือปิด)
get_active () สิ่งนี้จะดึงสถานะของปุ่ม
สลับ () ซึ่งจะส่งสัญญาณ "toggled" บนปุ่มสลับ

วิดเจ็ต ToggleButton ปล่อยสัญญาณต่อไปนี้ -

สลับ สิ่งนี้จะถูกปล่อยออกมาเมื่อสถานะ togglebutton เปลี่ยนแปลงโดยทางโปรแกรมหรือโดยการกระทำของผู้ใช้

โค้ดด้านล่างนี้แสดงให้เห็นถึงการใช้วิดเจ็ต ToggleButton

วิดเจ็ต ToggleButtons และ Label สองรายการจะอยู่ในคอนเทนเนอร์ VBox สัญญาณสลับที่ปล่อยออกมาจาก Button1 เชื่อมต่อกับฟังก์ชันเรียกกลับ on_toggled () ในฟังก์ชั่นนี้สถานะของ Button2 จะถูกตั้งค่าเป็น True หาก Button1 เป็น False และในทางกลับกัน

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

จะแสดงสถานะทันทีของปุ่มบนฉลาก

ตัวอย่าง

สังเกตรหัสต่อไปนี้ -

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()

รหัสด้านบนสร้างผลลัพธ์ต่อไปนี้ -