PyGTK - คลาส SpinButton

วิดเจ็ต SpinnButton มักเรียกว่า Spinner คือ gtk ป้อนวิดเจ็ตที่มีลูกศรขึ้นและลงทางด้านขวา ผู้ใช้สามารถพิมพ์ค่าตัวเลขโดยตรงหรือเพิ่มหรือลดโดยใช้ลูกศรขึ้นและลง คลาส gtk.SpinButton สืบทอดมาจากคลาส gtk.Entry ใช้ gtk วัตถุการปรับแต่งซึ่งสามารถ จำกัด ช่วงและขั้นตอนของค่าตัวเลขในสปินเนอร์ได้

วิดเจ็ต SpinButton ถูกสร้างขึ้นโดยใช้ตัวสร้างต่อไปนี้ -

sp = gtk.SpinButton(adj, climb_rate, digits)

ที่นี่ adj หมายถึง gtk.Adjustment object controlling range, climb_rate เป็นปัจจัยเร่งความเร็วและจำนวนทศนิยมที่ระบุด้วยตัวเลข

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

  • SpinButton.set_adjustment () - ตั้งค่าคุณสมบัติ "adjustment"

  • SpinButton.set_digits () - ตั้งค่าคุณสมบัติ "หลัก" เป็นค่าเพื่อกำหนดจำนวนตำแหน่งทศนิยมที่จะแสดงโดยปุ่มหมุน

  • SpinButton.set_increments (step, page) - ตั้งค่าขั้นตอนที่เพิ่มขึ้นสำหรับการกดปุ่มซ้ายของเมาส์แต่ละครั้งและค่าหน้าที่เพิ่มขึ้นสำหรับการกดปุ่มกลางเมาส์แต่ละครั้ง

  • SpinButton.set_range () - กำหนดค่าต่ำสุดและสูงสุดที่อนุญาตสำหรับปุ่มหมุน

  • SpinButton.set_value () - ตั้งค่าปุ่มหมุนเป็นค่าใหม่โดยทางโปรแกรม

  • SpinButton.update_policy () - ค่าที่ถูกต้องคือ gtk.UPDATE_ALWAYS และ gtk.UPDATE_VALID

  • SpinButton.spin (ทิศทาง, Increment = 1) - ค่านี้เพิ่มขึ้นหรือลดลงของ Spinner ในทิศทางที่กำหนด

ต่อไปนี้เป็นค่าคงที่ทิศทางที่กำหนดไว้ล่วงหน้า -

gtk.SPIN_STEP_FORWARD ไปข้างหน้าโดย step_increment
gtk.SPIN_STEP_BACKWARD ถอยหลังทีละขั้นตอน
gtk.SPIN_PAGE_FORWARD ไปข้างหน้าโดย step_increment
gtk.SPIN_PAGE_BACKWARD ถอยหลังทีละขั้นตอน
gtk.SPIN_HOME ย้ายไปที่ค่าต่ำสุด
gtk.SPIN_END ย้ายไปที่ค่าสูงสุด
gtk.SPIN_USER_DEFINED เพิ่มส่วนเพิ่มให้กับค่า
  • SpinButton.set_wrap () - หากการตัดเป็น True ค่าปุ่มหมุนจะล้อมรอบไปยังขีด จำกัด ที่ตรงกันข้ามเมื่อขีด จำกัด บนหรือล่างของช่วงเกิน

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

การเปลี่ยนแปลงมูลค่า สิ่งนี้จะแสดงเมื่อค่าปุ่มหมุนถูกเปลี่ยนโดยการกระทำของแป้นพิมพ์
อินพุต สิ่งนี้จะถูกปล่อยออกมาเมื่อค่าเปลี่ยนไป
เอาท์พุท สิ่งนี้จะถูกปล่อยออกมาเมื่อค่าการแสดงปุ่มหมุนเปลี่ยนไป ผลตอบแทนTrue หากตัวจัดการตั้งค่าข้อความสำเร็จและไม่จำเป็นต้องประมวลผลเพิ่มเติม
มูลค่าเปลี่ยนแปลง สิ่งนี้จะแสดงขึ้นเมื่อมีการเปลี่ยนแปลงการตั้งค่าใด ๆ ที่เปลี่ยนการแสดงปุ่มหมุน
ห่อ สิ่งนี้จะถูกปล่อยออกมาทันทีหลังจากปุ่มสปินตันพันจากค่าสูงสุดไปต่ำสุดหรือในทางกลับกัน

ตัวอย่าง

ตัวอย่างต่อไปนี้สร้างไฟล์ Date Selectorโดยใช้วิดเจ็ต SpinButton สามรายการ ตัวเลือกวันถูกใช้กับออบเจ็กต์การปรับค่าเพื่อ จำกัด ค่าระหว่าง 1—31 ตัวเลือกที่สองมีไว้สำหรับจำนวนเดือนที่ 1-12 ตัวเลือกที่สามเลือกช่วงปี 2000--2020

สังเกตรหัส -

import gtk

class PyApp(gtk.Window):
   
   def __init__(self):
      super(PyApp, self).__init__()
      self.set_title("SpinButton Demo")
      self.set_size_request(300, 200)
      self.set_position(gtk.WIN_POS_CENTER)
      self.set_border_width(20)
		
      vbox = gtk.VBox(False, 5)
      hbox = gtk.HBox(True, 3)
      lbl1 = gtk.Label("Date")
      hbox.add(lbl1)
		
      adj1 = gtk.Adjustment(1.0, 1.0, 31.0, 1.0, 5.0, 0.0)
      spin1 = gtk.SpinButton(adj1, 0, 0)
      spin1.set_wrap(True)
		
      hbox.add(spin1)
      lbl2 = gtk.Label("Month")
      hbox.add(lbl2)
		
      adj2 = gtk.Adjustment(1.0, 1.0, 12.0, 1.0, 5.0, 0.0)
      spin2 = gtk.SpinButton(adj2, 0, 0)
      spin2.set_wrap(True)
		
      hbox.add(spin2)
      lbl3 = gtk.Label("Year")
      hbox.add(lbl3)
		
      adj3 = gtk.Adjustment(1.0, 2000.0, 2020.0, 1.0, 5.0, 0.0)
      spin3 = gtk.SpinButton(adj3, 0, 0)
      spin3.set_wrap(True)
      hbox.add(spin3)
		
      frame = gtk.Frame()
      frame.add(hbox)
      frame.set_label("Date of Birth")
		
      vbox.add(frame)
      self.add(vbox)
      self.connect("destroy", gtk.main_quit)
      self.show_all()
PyApp()
gtk.main()

เมื่อดำเนินการรหัสด้านบนจะสร้างผลลัพธ์ต่อไปนี้ -