Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การตั้งค่าค่าเริ่มต้น (Default Value) ให้ Tkinter Spinbox Widget

Tkinter Spinbox ใช้สำหรับป้อนค่าตัวเลขด้วยปุ่มเพิ่ม/ลด สามารถตั้งค่าเริ่มต้นได้โดยใช้ StringVar ผูกกับ textvariable แล้วตั้งค่าด้วย .set()

ขั้นตอนการทำงาน

  1. นำเข้า tkinter และ ttk
  2. สร้าง StringVar และตั้งค่าเริ่มต้นด้วย .set("1.0")
  3. สร้าง Spinbox ด้วย ttk.Spinbox() พร้อมพารามิเตอร์:
    • from_=0.5 - ค่าต่ำสุด
    • to=10.0 - ค่าสูงสุด
    • increment=0.01 - ขนาดขั้นตอน
    • textvariable=my_var - ผูกตัวแปร
  4. จัด Layout และรัน mainloop()

ตัวอย่างโค้ด


from tkinter import *
from tkinter import ttk

win = Tk()
win.geometry("750x250")

# ตั้งค่าเริ่มต้น
my_var = StringVar(win)
my_var.set("1.0")

# สร้าง Spinbox
spinbox = ttk.Spinbox(win, from_=0.5, to=10.0, increment=0.01, textvariable=my_var)
spinbox.pack(ipadx=20, pady=20)

win.mainloop()

พารามิเตอร์สำคัญของ Spinbox

พารามิเตอร์คำอธิบาย
from_ค่าต่ำสุด (underscore เพราะ from เป็น keyword)
toค่าสูงสุด
incrementขนาดขั้นตอนการเพิ่ม/ลด
valuesTuple/List ค่าที่อนุญาต (ใช้แทน from_/to/increment)
wrapTrue =วนกลับเมื่อถึงขอบเขต
formatรูปแบบการแสดง (เช่น "%.2f")
commandCallback เมื่อค่าเปลี่ยน
state'normal', 'readonly', 'disabled'

ตัวอย่าง: ใช้ values แทน range


# เลือกได้เฉพาะค่าที่กำหนด
values = (0.5, 1.0, 1.5, 2.0, 2.5, 3.0)
spinbox = ttk.Spinbox(win, values=values, textvariable=my_var)
spinbox.pack()

การอ่านค่าปัจจุบัน


def get_value():
    print("Current value:", my_var.get())
    # หรือ
    print("Current value:", spinbox.get())

ttk.Button(win, text="Get Value", command=get_value).pack()

การประยุกต์ใช้

เหมาะสำหรับ: การตั้งค่าพารามิเตอร์ตัวเลข (ปริมาณ, ราคา, อัตรา, ขนาด) การเลือกเวลา (ชั่วโมง/นาที) การปรับระดับ (Volume, Brightness) ฟอร์มกรอกข้อมูลที่ต้องการจำกัดช่วงค่า