ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

     ใน Tkinter จะเรียกสิ่งต่างๆ ที่นำมาสร้างเป็น UI ว่า วิดเจ็ต (Widget) และวิดเจ็ตส่วนใหญ่จะมีออปชันบางส่วนอยู่เหมือนๆ กัน (Common Options) และก็จะมีเมธอดบางส่วนที่ใช้งานแบบเดียวกัน (Common Method) ดังนั้นในบทเรียนนี้เราจะมาแนะนำให้รู้จักกับออปชันพื้นฐานของวิดเจ็ตและเมธอดพื้นฐานของวิดเจ็ตบางส่วนที่มีในวิดเจ็ตส่วนใหญ่ ใน Tkinter กัน

ออปชันพื้นฐานของ Widget

     ออปชันเหล่านี้อาจกำหนดให้แก่ init เมื่อสร้างอินสแตนซ์ของวิดเจ็ตนั้น หรือกำหนดให้แก่เมธอด config() เมื่อต้องการปรับเปลี่ยนในภายหลัง ซึ่งออปชันบางส่วนเราก็ผ่านการใช้งานกันมาบ้างแล้วจากบทเรียนก่อนๆ แต่ก็จะขอนำมาพูดถึงอีกครั้งนึง โดยออปชันที่เราควรรู้จักในเบื้องต้นจะมีดังนี้

text ข้อความบนวิดเจ็ต
bg, fg และ font สีพื้นหลัง สีข้อความ และฟอนต์
width และ height ความกว้างและความสูงวิดเจ็ต
justify จัดข้อความบนวิดเจ็ตชิดด้านใดด้านหนึ่ง (LEFT, CENTER, RIGHT)
state กำหนดสถานะว่าใช้งานได้หรือไม่ (DISABLED และ NORMAL)
disabledforeground สีข้อความเมื่อวิดเจ็ตอยู่ในสถานะ DISABLED
relief ลักษณะของวิดเจ็ต (FLAT, RAISED, SUNKEN, GROOVE, RIDGE)

ตัวอย่างการใช้งาน

from tkinter import *

window = Tk()
window.geometry('250x200')
window.config(bg='gray')

bt1 = Button(text='TEST',font='Tahoma', bg='#EEEB8F',fg='blue',width=20,)
bt2 = Button(text='TEST',font=('Tahoma',15),bg='#ABC456', fg='#ffdac9',state=DISABLED,disabledforeground='white')
bt3 = Button(text='TEST', font=('Tahoma', 20, 'bold'),bg='snow',fg='pink',relief=FLAT)

bt1.grid()
bt2.grid()
bt3.grid()

mainloop()

ผลลัพธ์

ผลลัพธ์การใช้งานออปชันพื้นฐานต่างๆ

ผลลัพธ์การใช้งานออปชันพื้นฐาน

เมธอดพื้นฐานของ Widget

     เมธอดพื้นฐานที่น่าสนใจ ซึ่งมีอยู่ในวิดเจ็ตส่วนใหญ่ มีดังนี้

pack(), place(), grid() ใช้ในการจัดโครงร่างของปุ่ม
config() ใช้ในการกำหนดหรือเปลี่ยนแปลงออปชันของวิดเจ็ต
after() หน่วงเวลาออกไปทำกำหนด เช่น w.after(300, func)
after_cancel ยกเลิกฟังก์ชัน after
cget() อ่านค่าของออปชันที่ระบุ เช่น w.cget('font')
focus() เซตโฟกัสที่วิดเจ็ตนั้น
clipboard_append() ใส่สตริงที่ระบุลงในคลิปบอร์ด
clipboard_clear() ลบข้อมูลทั้งหมดในคลิปบอร์ด

     นอกจากเราจะกำหนดและอ่านค่าออปชันด้วยเมธอด config() และ cget() ตามลำดับแล้ว ยังสามารถอ้างถึงในแบบซัปสคริปต์ได้ด้วย เช่น

bt = Button(...)
bt.config(state=DISABLED)   เป็น bt['state'] = DISABLED
st = bt.cget('state')  เป็น st = bt['state']

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

Chayapol
, องค์ประกอบพื้นฐานของวิดเจ็ต (Widget) ใน Tkinterface - by บทเรียน Python GUI,
0 1 0 5
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
สอบถามวิธี render file mp4 kdenlive หน่อยครับ
โดย chakirin.bfds จ 08 มี.ค. 2021 6:06 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
6
จ 08 มี.ค. 2021 6:06 pm โดย chakirin.bfds
ขอวิธีลบหรือรีเซ็ตค่าข้อมูลในตารางหน่อยครับ
โดย chakirin.bfds จ 08 มี.ค. 2021 3:51 pm บอร์ด SQL - Database
4
19
จ 08 มี.ค. 2021 6:54 pm โดย chakirin.bfds
Q - สอบถามทำให้ mouse over ที่ไอคอนรูปวงกลม แล้วให้แสดงรูปที่เป็นข้อความขึ้น
โดย eange08 ศ 05 มี.ค. 2021 4:52 pm บอร์ด Joomla Dev
1
5
ศ 05 มี.ค. 2021 5:47 pm โดย tsukasaz
กลุ่มประเทศผู้ส่งออกข้าว
โดย jataz2 ศ 05 มี.ค. 2021 11:07 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
23
ศ 05 มี.ค. 2021 11:07 am โดย jataz2
Q - พอมี module หรือ plugin ที่เป็นพวก social อย่าง line, ig บ้างไหมค่ะ
โดย eange08 พฤ 04 มี.ค. 2021 5:21 pm บอร์ด Joomla Dev
1
7
พฤ 04 มี.ค. 2021 5:26 pm โดย tsukasaz
reboot เครื่องไม่ได้ครับ
โดย chakirin.bfds พฤ 04 มี.ค. 2021 12:25 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
48
พฤ 04 มี.ค. 2021 3:14 pm โดย chakirin.bfds
แก้ css ส่วน padding ด้วย override แล้วไม่เปลี่ยนตาม
โดย eange08 พ 03 มี.ค. 2021 4:43 pm บอร์ด Joomla Development
1
33
พ 03 มี.ค. 2021 4:47 pm โดย tsukasaz
Joomla PDPA ใช้ EB Sticky Cookie Notice โมดูล แสดงแจ้งเตือนการเก็บข้อมูล Cookie ของผู้ใช้งาน
โดย tsukasaz พ 03 มี.ค. 2021 4:39 pm บอร์ด Joomla Extension Review
0
30
พ 03 มี.ค. 2021 4:39 pm โดย tsukasaz