Widget แบบต่างๆใน Tkinter

เราเห็นตัวอย่างของการใช้ widgets แบบต่างๆเช่น Tk, Frame, Button แต่ Tk ยังมี widget อื่นๆอีกมากให้เราเลือกใช้งาน

Button ปุ่ม เรียกฟังก์ชันที่เรากำหนดเมื่อกดปุ่ม

Tkinter Button

Canvas พื้นที่สำหรับวาดกราฟ สามารถใส่ custom widget ลงไปได้ด้วย

Tkinter Canvas

Checkbutton เป็นปุ่มแบบ toggle ที่เปลี่ยนไปมาระหว่างค่าสองค่า (เช่น ปิด กับ เปิด) เวลาที่ใช้เมาส์คลิก

Tkinter CheckButton

Entry สำหรับป้อนข้อมูลที่เป็นตัวอักษรหรือตัวเลข

Tkinter Entry

Frame กล่องสี่เหลี่ยมว่างๆที่อาจจะมีเส้นรอบหรือพื้นหลัง ใช้ในการรวมกลุ่ม widgets หลายๆอัน

Tkinter Frame

Label สำหรับใส่ข้อความดังที่เราได้เห็นไปแล้วในบทแรก

Listbox ที่สำหรับใส่ลิสต์ ในลิสต์นั้นเมื่อใช้คู่กับ widget ตัวอื่นอาจจะเอาไว้ทำ radio button หรือ checklist ให้กดเลือก

Tkinter Listbox

Menu เป็นส่วนของเมนูซึ่งเป็นลักษณะ dropdown หรือ popup menus

Tkinter Menu

Menubutton สำหรับทำ dropdown menu

Tkinter MenuButton

Message โชว์ข้อความ คล้ายๆ Label widget แต่สามารถใส่ข้อความที่มีความกว้างยาวตามที่กำหนดได้

Tkinter Message

Radiobutton ใช้ทำ radio buttons สำหรับระบุเลือกตัวใดตัวหนึ่ง ตามรูป

Tkinter Radiobutton

Scale ใช้ทำ slider ที่ปรับค่าได้ตั้งแต่มากสุดไปจนถึงน้อยสุด

Tkinter Scale

Scrollbar ใช้สำหรับเลื่อนเมื่อเนื้อหาใน widget ใหญ่กว่าตัวหน้าต่าง สามารถนำไปติดบน canvas, entry, listbox, and text widgets ได้

Tkinter Scrollbar

Text สำหรับใส่ข้อความขนาดยาว

Tkinter Text

Toplevel ใช้ทำหน้าต่างพวก dialog box และ popup

Tkinter Toplevel

LabelFrame คล้ายๆกับ Frame widget สามารถใส่ title และ format เส้นกรอบได้

Tkinter LabelFrame

PanedWindow เป็นกล่องที่เก็บ widgets อื่นๆไว้รวมกัน แต่จะสามารถ resize หน้าต่างได้

Tkinter PanedWindow

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

Tkinter Spinbox

เราจะเห็นว่า widget ก็คือกล่องสี่เหลี่ยมที่บรรจุ ส่วนประกอบของ GUI (GUI element) โดย widget แต่ละแบบจะมีการใส่ค่าที่แตกต่างกัน เวลาที่เราจะเขียน GUI ทั้งหมดเราต้องเอา widget หลายๆอันมาประกอบกัน

แต่ถ้าอยากเข้าใจ widget แต่ละแบบให้มากขึ้นและเล่นตัวอย่างโค้ด ลองดูในลิงค์นี้ได้เลย http://effbot.org/tkinterbook/tkinter-classes.htm