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

การจัดโครงร่างด้วยเมธอด grid()

     เมธอด grid() จะเป็นการแบ่งพื้นที่ออกเป็นช่องเซลล์(กริด) แบบแถวและแบบคอลัมน์คล้ายกับตาราง แล้วทำการวางวิดเจ็ตลงในแต่ละช่อง โดยเลขลำดับจะเริ่มจาก 0,0 ซึ่งตัวเมธอด grid() นี้จะมีอปปชันหรือคีย์เวิร์ด สำหรับกำหนดลักษณะการจัดวางตำแหน่งต่างๆ ดังต่อไปนี้

row, column กำหนดลำดับแถวและคอลัมน์ที่จะวางวิดเจ็ตนั้นลงไป
rowspan จำนวนแถวที่จะยุบรวมกัน
columnspan จำนวนคอลัมน์ที่จะยุบรวมกัน
sticky จะยึดวิดเจ็ตติดกับแนวขอบทางด้านใดของช่องเซลล์ โดยค่าที่กำหนดได้จะคล้ายกับออปชัน anchor ของเมธอด pack() ได้แก่ N, E, S, W, NE, SE, NW, SW วิดเจ็ตจะขยายออกในแนวนอนจนเต็มความกว้างของเซลล์
padx, pady กำหนดระยะห่างในแนวแกน x และ y กับวิดเจ็ตอื่นที่อยู่ติดกัน ตามลำดับ
ipadx, ipady กำหนดระยะห่างในแนวแกน x และ y ระหว่างเนื้อหากับขอบของวิดเจ็ต ตามลำดับ

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

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

from tkinter import *

window = Tk()
window.geometry('300x150')
window.config(bg='light green')

bt0 = Button(text="ZERO")
bt1 = Button(text='ONE')
bt2 = Button(text='TWO')
bt3 = Button(text='THREE')

bt5 = Button(text="FIVE")
bt6 = Button(text="SIX")

bt0.grid(row=0, column=0, padx=10, pady=10)
bt1.grid(row=0, column=1, padx=10, pady=10,sticky=W)
bt2.grid(row=0, column=2, padx=10, pady=10,ipadx=50)
bt3.grid(row=1, column=0, padx=10, pady=10,sticky=N)
bt5.grid(row=1, column=1, padx=10, pady=10,columnspan=1,ipadx=10, ipady=10)
bt6.grid(row=1, column=2, padx=10, pady=10,sticky=NW)

mainloop()

ผลลัพธ์

ผลลัพธ์การจัดโครงร่างด้วยเมธอด grid()

ผลลัพธ์การจัดโครงร่าง

     หากวิดเจ็ตที่จะจัดวางด้วยเมธอด grid() มีขนาดความกว้างและความสูงใกล้เคียงกัน วิดเจ็ตเหล่านั้นก็อาจจะวางอยู่ชิดจนไม่สวยงาม ดังนั้นเราสามารถเพิ่มระยะห่างไดด้วยออปชัน padx และ pady และนอกจากนั้นหากวิดเจ็ตไม่พอดีกีบเซลล์มันจะอยู่นำไปวางไว้ที่กึ่งกลาง ซึ่งอาจทำให้ดูไม่เรียบร้อย แต่เราก็สามารถใช้ออปชัน sticky เพื่อทำการเลื่อนวิดเจ็ตไปชิดที่ด้านใดด้านหนึ่งตามทิศทางที่เรากำหนดได้

 

 

ช่องทางการศึกษาเพิ่มเติม

การจัดโครงร่างด้วยเมธอด pack() ในโมดูล Tkinter

การจัดโครงร่างด้วยเมธอด place() ในโมดูล Tkinter 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
มารู้จัก Noun modifiers ในภาษาอังกฤษกันเถอะ
โดย internTk21 จ 08 เม.ย. 2024 1:16 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
74
จ 08 เม.ย. 2024 1:16 pm โดย internTk21 View Topic มารู้จัก Noun modifiers ในภาษาอังกฤษกันเถอะ
คำศัพท์ Antonyms ที่ใช้ในชีวิตประจำวัน
โดย internTk21 จ 08 เม.ย. 2024 11:52 am บอร์ด Microsoft Office Knowledge & line & Etc
0
75
จ 08 เม.ย. 2024 11:52 am โดย internTk21 View Topic คำศัพท์ Antonyms ที่ใช้ในชีวิตประจำวัน
Stress คำศัพท์ภาษาอังกฤษอย่างไรให้ถูกต้อง
โดย internTk21 อ 07 เม.ย. 2024 11:57 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
80
อ 07 เม.ย. 2024 11:57 pm โดย internTk21 View Topic Stress คำศัพท์ภาษาอังกฤษอย่างไรให้ถูกต้อง
การใช้ Intonation ในภาษาอังกฤษ
โดย internTk21 ส 06 เม.ย. 2024 1:46 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
98
ส 06 เม.ย. 2024 1:46 pm โดย internTk21 View Topic การใช้ Intonation ในภาษาอังกฤษ
พื้นฐานการทำ SEO ในเว็บไซต์ เส้นทางสู่การเพิ่มประสิทธิภาพในการค้นหา
โดย athirach.offcial พฤ 04 เม.ย. 2024 4:53 pm บอร์ด Share Knowledge
0
216
พฤ 04 เม.ย. 2024 4:53 pm โดย athirach.offcial View Topic พื้นฐานการทำ SEO ในเว็บไซต์ เส้นทางสู่การเพิ่มประสิทธิภาพในการค้นหา
ลักษณะการทดสอบโปรแกรมที่ไม่เหมาะกับการทดสอบอัตโนมัติ
โดย athirach.offcial พฤ 04 เม.ย. 2024 4:49 pm บอร์ด Software testing
0
232
พฤ 04 เม.ย. 2024 4:49 pm โดย athirach.offcial View Topic ลักษณะการทดสอบโปรแกรมที่ไม่เหมาะกับการทดสอบอัตโนมัติ
Tester trick ข้อควรระวังในการทดสอบโปรแกรม
โดย athirach.offcial พฤ 04 เม.ย. 2024 4:43 pm บอร์ด Software testing
0
70
พฤ 04 เม.ย. 2024 4:43 pm โดย athirach.offcial View Topic Tester trick ข้อควรระวังในการทดสอบโปรแกรม
การทดสอบและบทบาทของผู้ทดสอบโปรแกรมอัตโนมัติในปี 2024
โดย athirach.offcial พฤ 04 เม.ย. 2024 4:38 pm บอร์ด Software testing
0
61
พฤ 04 เม.ย. 2024 4:38 pm โดย athirach.offcial View Topic การทดสอบและบทบาทของผู้ทดสอบโปรแกรมอัตโนมัติในปี 2024