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()
เมื่อดำเนินการรหัสด้านบนจะสร้างผลลัพธ์ต่อไปนี้ -