โครงการ Python Tkinter [คำอธิบายทีละขั้นตอน]

เผยแพร่แล้ว: 2020-09-14

การเรียนรู้เกี่ยวกับ GUI ใน Python นั้นค่อนข้างท้าทาย ไม่ต้องกังวลเพราะเรากลับมาแล้ว! ในบทความนี้ เราได้แชร์บทช่วยสอน Tkinter เพื่อให้คุณทำงานในโครงการ Python GUI ได้อย่างมีประสิทธิภาพ หลังจากเสร็จสิ้นการกวดวิชานี้ คุณจะคุ้นเคยกับหน่วยการสร้างสำหรับการสร้างโครงการ Python Tkinter หากคุณต้องการได้รับความเชี่ยวชาญมากขึ้นใน python ให้ตรวจสอบโปรแกรมวิทยาศาสตร์ข้อมูลของเรา

เรายังได้แบ่งปันรหัสสำหรับทุกขั้นตอน อย่างไรก็ตาม เราขอแนะนำให้คุณคัดลอกและวางเมื่อคุณเข้าใจวิธีการทำงานเท่านั้น ไม่อย่างนั้นคงไม่มีประโยชน์อะไรมาก

สารบัญ

Tkinter คืออะไร?

Tkinter เป็นแพ็คเกจสำหรับ Python เพื่อใช้ชุดเครื่องมือ Tk GUI คุณสามารถใช้ Tkinter เพื่อสร้างโปรแกรม GUI ผ่าน Python แม้ว่า Tkinter จะสามารถผลิตโปรแกรมได้มากมาย แต่คุณอาจต้องใช้โมดูลเพื่อการใช้งานขั้นสูง คุณควรทำความคุ้นเคยกับพื้นฐานของ Tkinter ก่อนที่จะทำงานในโครงการ Python Tkinter:

โครงการ Hello World ใน Tkinter

ต่อไปนี้คือตัวอย่างโปรแกรม Hello World ใน Tkinter:

นำเข้า tkinter เป็น tk

แอปพลิเคชันคลาส (tk.Frame):

def __init__(ตัวเอง, อาจารย์=ไม่มี):

สุดยอด().__init__(มาสเตอร์)

self.master = มาสเตอร์

self.pack()

self.create_widgets()

def create_widgets (ตัวเอง):

self.hi_there = tk.Button (ตัวเอง)

self.hi_there["text"] = "สวัสดีชาวโลก\n(คลิกฉัน)"

self.hi_there["คำสั่ง"] = self.say_hi

self.hi_there.pack(ด้านข้าง=”บน”)

self.quit = tk.Button (ตัวเอง, ข้อความ =”เลิก”, fg=”สีแดง”,

command=self.master.destroy)

self.quit.pack(ข้าง=”ล่าง”)

def say_hi (ตัวเอง):

พิมพ์("สวัสดีทุกคน!")

รูท = tk.Tk()

แอพ = แอปพลิเคชัน (มาสเตอร์ = รูท)

แอพ.mainloop()

ผู้จัดการเรขาคณิตใน Tkinter

แนวคิดหลักอีกประการหนึ่งที่คุณควรรู้ในขณะที่ทำงานในโครงการ Python Tkinter คือตัวจัดการเรขาคณิต หากไม่ใช้ตัวจัดการเรขาคณิต วิดเจ็ตของคุณจะไม่ปรากฏบนหน้าจอ คุณสามารถเพิ่มตัวจัดการเรขาคณิตได้สามวิธีหลัก:

กริด

จะเพิ่มกริดให้กับพาเรนต์และอนุญาตให้แสดงวิดเจ็ตตามนั้น ตารางมีแถวและคอลัมน์สำหรับวัดความยาวและความสูงของวิดเจ็ต

หีบห่อ

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

สถานที่

เมธอดนี้วางวิดเจ็ตในตำแหน่งเฉพาะตามวิดเจ็ตหลัก

ในบทช่วยสอนด้านล่าง เราได้ใช้ตัวจัดการแพ็คเพื่อจัดการตำแหน่งของวิดเจ็ตของเรา นั่นเป็นเหตุผลที่ดีที่สุดถ้าคุณคุ้นเคยกับแนวคิดเหล่านี้ มันจะช่วยให้คุณเข้าใจการทำงานของโครงการของเราดีขึ้น

ชำระเงิน: 42 แนวคิดและหัวข้อโครงการ Python ที่น่าตื่นเต้นสำหรับผู้เริ่มต้น

การสร้าง GUI ใน Python (Tkinter Tutorial)

ขั้นตอนที่ #1: การนำเข้าโมดูล

เพื่อเริ่มทำงานกับแอปพลิเคชัน อันดับแรก เราต้องนำเข้าโมดูลที่จำเป็น คุณสามารถทำได้โดยนำเข้าโมดูลในเนมสเปซของคุณ จะช่วยให้คุณสามารถใช้ค่าคงที่และคลาสตามชื่อแทนการมีคุณสมบัติตามที่กำหนด ซึ่งหมายความว่าคุณสามารถใช้ "ป้ายกำกับ" ได้โดยใช้ชื่อแทนการระบุว่าเป็น "TkinterLabel" มันจะทำให้สิ่งต่าง ๆ ค่อนข้างง่าย และคุณสามารถประหยัดเวลาได้มาก เนื่องจากการคัดเลือกทุกชั้นเรียนและค่าคงที่นั้นอาจยุ่งยากมาก ใช้รหัสต่อไปนี้เพื่อนำเข้าโมดูล:

>>> จากการนำเข้า Tkinter *

หาก Python ไม่ได้เชื่อมโยงกับ Tk (หรือ Tcl) ในระบบของคุณ หรือหากคุณไม่มี Tk (หรือ Tcl) ติดตั้งอยู่ในระบบ คุณจะเห็นข้อความแสดงข้อผิดพลาดในส่วนนี้ ในการแก้ไขปัญหานี้ คุณจะต้องให้ผู้ดูแลระบบของคุณเข้าถึงได้ ตรวจสอบให้แน่ใจว่าคุณแก้ปัญหานี้โดยทำเช่นเดียวกัน

ในทางกลับกัน ถ้าคุณไม่เห็นข้อความแสดงข้อผิดพลาดใดๆ ในส่วนเหล่านี้ คุณสามารถไปยังขั้นตอนถัดไปเพื่อสร้างหน้าต่าง:

>>> ชนะ = Tk()

เราได้กำหนดตัวแปร "win" ให้กับหน้าต่างของเรา หลังจากติดตั้งโค้ดด้านบนแล้ว คุณจะเห็นหน้าต่างเล็กๆ บนหน้าจอ แถบชื่อเรื่องควรแสดง "tk" ที่เขียนไว้

ซึ่งหมายความว่าคุณทำขั้นตอนนี้สำเร็จแล้ว และสามารถเริ่มสร้าง GUI ใน Python ได้แล้ว

ขั้นตอนที่ #2: การเพิ่มปุ่ม

เมื่อ Tkinter ทำงานแล้ว เราก็สามารถเพิ่มปุ่มลงในโปรแกรมของเราได้ ปุ่มเป็นส่วนที่ง่ายที่สุดของโปรแกรม GUI ดังนั้นเราจะเริ่มด้วยปุ่มเหล่านี้:

>>> b1 = ปุ่ม (ชนะ, ข้อความ =” หนึ่ง”)

>>> b2 = ปุ่ม (ชนะ, ข้อความ =” สอง”)

หน้าต่างที่เราสร้างในส่วนสุดท้ายคือพาเรนต์สำหรับปุ่มที่เราทำตอนนี้ เมื่อคุณทำงานในโครงการ Python Tkinter เพิ่มเติม คุณจะพบว่าเฟรมสามารถใช้เป็นพาเรนต์สำหรับคลาสอื่นๆ ได้ ตอนนี้ เมื่อคุณติดตั้งโค้ดนี้ คุณจะสังเกตเห็นเหตุการณ์แปลก ๆ – ปุ่มไม่ปรากฏในหน้าต่าง!

นั่นเป็นเพราะว่าเราต้องเพิ่มกริดและแพ็คลงในโปรแกรมของเรา สิ่งเหล่านี้เรียกว่าตัวจัดการเรขาคณิต และเราได้พูดถึงมันก่อนหน้านี้ในบทความนี้ เราจะเพิ่มตัวจัดการแพ็คในส่วนถัดไปของเรา:

ขั้นตอนที่ #3: การใช้ Pack Manager

เราจะใช้วิธีแพ็คเพื่อเพิ่มปุ่มของเราในวิดเจ็ตหลัก ด้วยตัวจัดการแพ็ค คุณสามารถบอกได้ว่าวิดเจ็ตหลักด้านใดที่คุณต้องการรวมวิดเจ็ตลูกของคุณ คุณสามารถใช้ TOP, RIGHT, BOTTOM, LEFT เป็นฟังก์ชันของคุณได้ โปรแกรมจะเลือก TOP เป็นค่าเริ่มต้น หากคุณไม่ได้ระบุด้าน มาเพิ่มตัวจัดการแพ็คก่อน:

>>> b1.pack()

>>> b2.pack()

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

>>> b2.pack(ข้าง=ซ้าย)

>>> b1.pack(ข้าง=ซ้าย)

โปรดทราบว่าเราใช้ตัวจัดการแพ็คเป็นส่วนใหญ่เมื่อเราต้องวางวิดเจ็ตของเราในสองคำสั่งนี้ (แนวนอนและแนวตั้ง) เท่านั้น สำหรับการจัดวางวิดเจ็ตประเภทอื่นๆ เราใช้วิธีกริดหรือวิธีการวาง คุณสามารถเพิ่มช่องว่างระหว่างปุ่มและหน้าต่างโดยใช้ฟังก์ชัน 'padx' หรือ 'pady' ฟังก์ชัน 'padx' จะเพิ่มการเติมลงในแกน X (ซ้ายและขวา) ของวิดเจ็ต และฟังก์ชัน 'pady' จะเพิ่มการเติมลงในแกน Y (ด้านบนและด้านล่าง) ของอุปกรณ์

>>> b1.pack(ข้าง=ซ้าย, padx=10)

>>> b2.pack(ข้าง=ซ้าย, padx=10)

เราแนะนำให้ทำการทดสอบด้วยการเติมวิดเจ็ต มันจะช่วยให้คุณเข้าใจวิธีต่างๆ ที่คุณสามารถปรับเปลี่ยนตำแหน่งของวิดเจ็ตได้ Padding เป็นแนวคิดที่ท้าทายที่จะเชี่ยวชาญ ดังนั้นจึงควรลองใช้มันก่อนที่จะไปยังส่วนถัดไป

ขั้นตอนที่ #4: ตัวจัดการกริด

ตัวจัดการเรขาคณิตที่ได้รับความนิยมอีกตัวหนึ่งใน Tkinter คือตัวจัดการกริด ดังที่เราได้กล่าวไปแล้วในบทความของเรา ตัวจัดการกริดช่วยให้คุณแบ่งพาเรนต์ออกเป็นแถวและคอลัมน์ได้ คุณสามารถวางวิดเจ็ตย่อยในเซลล์ของกริดของพาเรนต์ คุณสามารถปรับเปลี่ยนความกว้างและความยาวของทุกคอลัมน์และแถวได้ตามความต้องการของคุณ ไม่ใช่ทุกคอลัมน์จะต้องมีความกว้างเท่ากัน ในทำนองเดียวกัน ทุกแถวไม่จำเป็นต้องมีความสูงเท่ากัน ดังนั้น ตัวจัดการกริดจะช่วยให้คุณมีอิสระในการสร้างสรรค์มากขึ้นในแง่ของการแก้ไขลักษณะที่ปรากฏและตำแหน่งของวิดเจ็ตของคุณ

เราจะสร้างหน้าต่างใหม่โดยใช้ปุ่มเดียวกันกับที่เราเคยสร้างไว้ก่อนหน้านี้เพื่อทดสอบตัวจัดการกริด อย่างไรก็ตาม เราจะเพิ่มปุ่มต่างๆ ในตาราง 2×2:

>>> ชนะ = Tk()

>>> b1 = ปุ่ม (ชนะ, ข้อความ =” หนึ่ง”)

>>> b2 = ปุ่ม (ชนะ, ข้อความ =” สอง”)

>>> b1.grid(แถว=0, คอลัมน์=0)

>>> b2.grid(แถว=1,คอลัมน์=1)

คุณจะสังเกตเห็นว่าโปรแกรมของเราได้เว้นบางเซลล์ว่างไว้ นั่นเป็นเพราะเราไม่ได้เพิ่มอะไรในแถว 0, คอลัมน์ 1 (หรือแถว 1 และคอลัมน์ 0) เราจะลองใช้วิดเจ็ตใหม่เพื่อดูสิ่งที่น่าสนใจ:

>>> l = ป้ายกำกับ (ชนะ, text=”นี่คือป้ายกำกับ”)

>>> l.grid(แถว=1, คอลัมน์=0)

เมื่อคุณเพิ่มโค้ดข้างต้น คุณจะสังเกตเห็นว่าปุ่มที่สองเลื่อนไปทางขวาเพื่อรองรับข้อความ ทางที่ดีควรลองใช้ตัวจัดการกริดที่มีวิดเจ็ตหลายตัวเพื่อดูว่ามันทำงานอย่างไร

ต้องอ่าน: เงินเดือนนักพัฒนา Django ในอินเดีย

ขั้นตอนที่ #5: การปรับปรุงเค้าโครง

ในส่วนนี้ เราจะลองใช้วิดเจ็ตใหม่ที่เรียกว่า frame เฟรมมีไว้สำหรับบรรจุวิดเจ็ตอื่นเท่านั้น คุณสามารถรวมวิดเจ็ตหลายรายการไว้ในเฟรมเดียว หรือใช้กริดเพื่อวางวิดเจ็ตเหล่านั้นในที่เดียวกัน คุณยังสามารถรวมเฟรมต่างๆ ไว้ในเฟรมเดียวได้ คุณลักษณะนี้ช่วยให้คุณสร้างเค้าโครงขั้นสูงสำหรับโปรแกรม GUI ของคุณได้ ตัวอย่างเช่น เราจะเพิ่มปุ่มสามปุ่มให้กับเฟรมในหนึ่งแถว เพิ่มปุ่มในแนวนอนแล้วบรรจุฉลากในแนวตั้งพร้อมกับกรอบ:

>>> ชนะ = Tk()

>>> f = เฟรม (ชนะ)

>>> b1 = ปุ่ม (f, “หนึ่ง”)

>>> b2 = ปุ่ม (f, “สอง”)

>>> b3 = ปุ่ม (f, “สาม”)

>>> b1.pack(ข้าง=ซ้าย)

>>> b2.pack(ข้าง=ซ้าย)

>>> b3.pack(ข้าง=ซ้าย)

>>> l = ป้ายกำกับ (ชนะ” ป้ายกำกับนี้อยู่เหนือปุ่มทั้งหมด”)

>>> l.pack()

>>> f.pack()

ดังที่เราได้กล่าวไปแล้วในบทความ คุณยังสามารถใช้วิธีวางเป็นตัวจัดการเรขาคณิตได้ วิธีการวางช่วยให้คุณสามารถวางวิดเจ็ตในตำแหน่งเฉพาะภายในหน้าต่างหรือกรอบ อย่างไรก็ตาม เราไม่แนะนำให้ใช้วิธีสถานที่บ่อยๆ เนื่องจากเป็นการจำกัดการตอบสนองของโปรแกรม

ด้วยฟังก์ชันกริด คุณสามารถใช้พารามิเตอร์ 'เหนียว' ที่ช่วยให้คุณใช้พิกัดแผนที่ (S, N, W, SW, NE ฯลฯ) เพื่อระบุตำแหน่งของวิดเจ็ตได้ ก่อนที่เราจะไปยังส่วนถัดไป ตรวจสอบให้แน่ใจว่าคุณเข้าใจฟังก์ชันต่างๆ ที่เราได้กล่าวถึงไปแล้ว ทดสอบกริดและเฟรมทำงานร่วมกันเพื่อดูว่าคุณจะใช้งานกริดในโปรเจ็กต์ Python GUI ได้อย่างไร

ขั้นตอนที่ #6: ทำให้ปุ่มมีประโยชน์

หากคุณจะคลิกปุ่มที่เราสร้างมาจนถึงตอนนี้ คุณต้องสังเกตว่าปุ่มเหล่านี้ไม่ตอบสนอง (ไม่ทำอะไรเลย) พวกเขากดทับเมื่อคุณคลิกและไฮไลท์เมื่อคุณวางเมาส์เหนือพวกมัน แต่พวกมันจะไม่ทำงานใดๆ เพื่อให้ปุ่มของเราทำงานเฉพาะ เราจะต้องใช้ฟังก์ชัน 'กำหนดค่า'

เราสามารถส่งอาร์กิวเมนต์คำหลักใดๆ ไปยังวิธี 'กำหนดค่า' ของวิดเจ็ตเพื่อส่งผ่านในขณะที่สร้าง นี่คือตัวอย่าง:

>>> b1.configure(text=”Uno”)

พารามิเตอร์ 'คำสั่ง' จะเชื่อมโยงปุ่มต่างๆ กับฟังก์ชันการโทรกลับเมื่อคุณสร้างหรือเพิ่ม 'กำหนดค่า' ให้กับปุ่มเหล่านั้น เพื่อให้เข้าใจถึงวิธีการทำงาน เราจะสร้างฟังก์ชันที่พิมพ์ข้อความ:

>>> def but1():

… พิมพ์ (“ปุ่มหนึ่งถูกผลัก”)

>>> b1.configure(คำสั่ง=but1)

ดังนั้นเมื่อคุณคลิกปุ่มนั้น ๆ มันจะพิมพ์ข้อความ

ขั้นตอนที่ #7: การเพิ่มวิดเจ็ตรายการ

วิดเจ็ตรายการอนุญาตให้ผู้ใช้ป้อนข้อความลงในโปรแกรม อย่างไรก็ตาม เราจะต้องทำให้วิดเจ็ตรายการทำงานเหมือนกับที่เราทำกับปุ่มต่างๆ วิดเจ็ตรายการต้องดึง (และตั้งค่า) ข้อความ เพื่อให้วิดเจ็ตรายการดำเนินการฟังก์ชันนี้ คุณต้องใช้อ็อบเจ็กต์ Tkinter 'StringVar' ออบเจ็กต์ 'StringVar' เก็บข้อความในรูปแบบของสตริงและทำให้อ่านได้ผ่าน get

เราจะสร้างหน้าต่างใหม่เพื่อทดสอบวิดเจ็ตรายการของเรา:

>>> ชนะ = Tk()

>>> v = StringVar()

>>> e = รายการ (ชนะ, ตัวแปรข้อความ = v)

>>> e.pack()

ตอนนี้ให้เพิ่ม "นี่คือการทดสอบ" เป็นรายการและดึงข้อมูลเดียวกันผ่าน StringVar:

>>> v.get()

"นี่คือการทดสอบ"

ตอนนี้คุณสามารถตั้งค่าข้อความเป็น StringVar และทำให้ปรากฏในวิดเจ็ต:

>>> v.set("นี่คือการตั้งค่าจากโปรแกรม")

วิดเจ็ตเพิ่มเติม: วิดเจ็ตกล่องรายการ

นอกเหนือจากวิดเจ็ตรายการ เราสามารถเพิ่มวิดเจ็ตกล่องรายการ วิดเจ็ตกล่องรายการช่วยให้ผู้ใช้เลือกรายการจากเมนูได้ เราจะสร้างหน้าต่างใหม่เพื่อลองใช้วิดเจ็ตกล่องรายการ:

>>> ชนะ = Tk()

>>> lb = กล่องรายการ (ชนะ, ความสูง=3)

>>> lb.pack()

>>> lb.insert(END, “รายการแรก”)

>>> lb.insert(END, “รายการที่สอง”)

>>> lb.insert(END “รายการที่สาม”)

>>> lb.insert(END, “รายการที่สี่”)

คุณสามารถแทรกรายการที่จุดเริ่มต้น ตรงกลาง และจุดสิ้นสุดของรายการ คุณสามารถลบออกได้เช่นกัน หากมีรายการมากเกินไปในรายการ คุณสามารถเพิ่มแถบเลื่อนได้:

>>> sb = แถบเลื่อน (ชนะ, orient=VERTICAL)

>>> sb.pack(ข้าง=ซ้าย เติม=Y)

เพื่อให้แถบเลื่อนของเราใช้งานได้ เราจะต้องใช้ฟังก์ชันโทรกลับ:

>>> sb.configure(command=lb.yview)

>>> lb.configure(yscrollcommand=sb.set)

วิธีการเลือกคำสาปส่งกลับรายการให้คุณเมื่อคุณเลือกในกล่องรายการ มันจะคืนค่าทูเพิลว่างถ้าคุณไม่เลือกรายการใด ๆ

ขั้นตอนที่ #8: ขั้นตอนสุดท้าย

เราจะใช้ทุกสิ่งที่เราเรียนรู้ในบทช่วยสอน Tkinter เพื่อสร้างตัวแก้ไขรายชื่อโทรศัพท์:

รหัสทั้งหมด

#!/usr/bin/env python3

จากการนำเข้า tkinter *

จากการนำเข้าโทรศัพท์ *

def which_selected():

พิมพ์(“ที่ {0}”.format(select.curselection()))

กลับ int(select.curselection()[0])

def add_entry():

phonelist.append([fnamevar.get(), lnamevar.get(), phonevar.get()])

set_select()

def update_entry():

รายการโทรศัพท์[that_selected()] = [fnamevar.get(),

lnamevar.get(),

phonevar.get()]

def delete_entry():

รายชื่อโทรศัพท์[that_selected()]

set_select()

def load_entry():

fname, lname, phone = รายการโทรศัพท์[that_selected()]

fnamevar.set(fname)

lnamevar.set(lname)

phonevar.set (โทรศัพท์)

def make_window():

global fnamevar, lnamevar, phonevar, select

ชนะ = Tk()

frame1 = เฟรม (ชนะ)

frame1.pack()

ป้ายกำกับ(frame1, text=”First Name”).grid(row=0, column=0, sticky=W)

fnamevar = StringVar()

fname = รายการ (frame1, textvariable = fnamevar)

fname.grid(row=0, column=1, sticky=W)

ป้ายกำกับ(frame1, text=”Last Name”).grid(row=1, column=0, sticky=W)

lnamevar = StringVar()

lname = รายการ (frame1, textvariable = lnamevar)

lname.grid(แถว=1 คอลัมน์=1 เหนียว=W)

ป้ายกำกับ(frame1, text=”Phone”).grid(row=2, column=0, sticky=W)

phonevar = StringVar()

phone = รายการ (frame1, textvariable=phonevar)

phone.grid(แถว=2 คอลัมน์=1 เหนียว=W)

frame2 = เฟรม (ชนะ) # แถวของปุ่ม

frame2.pack()

b1 = ปุ่ม (frame2, text=” เพิ่ม “, command=add_entry)

b2 = ปุ่ม (frame2, text=”Update”, command=update_entry)

b3 = ปุ่ม (frame2, text=”Delete”, command=delete_entry)

b4 = ปุ่ม (frame2, text=”Load “, command=load_entry)

b5 = ปุ่ม (frame2, text=”Refresh”, command=set_select)

b1.pack(ข้าง=ซ้าย)

b2.pack(ข้าง=ซ้าย)

b3.pack(ข้าง=ซ้าย)

b4.pack(ข้าง=ซ้าย)

b5.pack(ข้าง=ซ้าย)

frame3 = เฟรม (ชนะ) # เลือกชื่อ

frame3.pack()

scroll = แถบเลื่อน (frame3, orient=VERTICAL)

เลือก = กล่องรายการ (frame3, yscrollcommand=scroll.set, height=6)

scroll.config(command=select.yview)

scroll.pack(ข้าง=ขวา เติม=Y)

select.pack(ข้าง=ซ้าย เติม=ทั้งสอง ขยาย=1)

กลับมาชนะ

def set_select():

phonelist.sort(คีย์=บันทึกแลมบ์ดา: บันทึก[1])

select.delete(0, สิ้นสุด)

สำหรับ fname, lname, โทรศัพท์ในรายการโทรศัพท์:

select.insert(END, “{0}, {1}”.format(lname, fname))

ชนะ = make_window()

set_select()

win.mainloop()

นี่คือรายการโทรศัพท์:

รายการโทรศัพท์ = [['Chris', 'Meyers', '241-343-4349'],

['โรเบิร์ต', 'สมิธ', '202-689-1234'],

['เจเน็ต', 'โจนส์', '609-483-5432'],

['ราล์ฟ', 'บาร์นฮาร์ท', '215-683-2341'],

['เอริค', 'เนลสัน', '571-485-2689'],

['ฟอร์ด', 'พรีเฟ็ค', '703-987-6543'],

['แมรี่', 'ซิกเลอร์', '812-567-8901'],

['บ๊อบ', 'สมิธ', '856-689-1234']]

ตัวอย่างโปรแกรมที่เราแชร์ที่นี่ คุณสามารถสร้างโปรแกรมของคุณด้วยฟังก์ชันต่างๆ ที่เราได้พูดคุยกันในบทช่วยสอน Tkinter นี้ โปรแกรมข้างต้นขาดฟังก์ชันการทำงานหลายอย่าง เช่น ไม่มีตัวเลือกให้บันทึกการเปลี่ยนแปลงใดๆ คุณสามารถเพิ่มฟังก์ชันบันทึกได้ด้วยตัวเองโดยสร้างปุ่มที่สามารถทำงานนี้ได้

ต้องอ่าน: Markov Chain ใน Python Tutorial

เรียนรู้เพิ่มเติมเกี่ยวกับโครงการ Python และ Python GUI

การทำงานกับโปรเจ็กต์ Python Tkinter นั้นค่อนข้างสนุก ถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่ นอกจากนี้ยังเป็นวิธีที่ดีในการทำความเข้าใจจุดแข็ง (และจุดอ่อน) ของคุณ คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Python; เราแนะนำให้ไปที่บล็อกของเรา นี่คือแหล่งข้อมูลบางส่วนสำหรับการอ่านเพิ่มเติม:

  • 10 โครงการ Python GUI
  • วิธีสร้างแชทบอทใน Python
  • แนวคิดโครงการ 42 Python

คุณคิดอย่างไรกับโครงการนี้ คุณเคยทำงานในโครงการ Python Tkinter อื่น ๆ หรือไม่? แจ้งให้เราทราบ.

หากคุณอยากเรียนรู้เกี่ยวกับวิทยาศาสตร์ข้อมูล ลองดูโปรแกรม Executive PG ของ IIIT-B & upGrad ใน Data Science ซึ่งสร้างขึ้นสำหรับมืออาชีพที่ทำงานและมีกรณีศึกษาและโครงการมากกว่า 10 รายการ เวิร์กช็อปภาคปฏิบัติจริง การให้คำปรึกษากับผู้เชี่ยวชาญในอุตสาหกรรม 1 -on-1 พร้อมที่ปรึกษาในอุตสาหกรรม การเรียนรู้มากกว่า 400 ชั่วโมงและความช่วยเหลือด้านงานกับบริษัทชั้นนำ

Python เหมาะสำหรับการสร้างส่วนต่อประสานกราฟิกกับผู้ใช้หรือไม่?

Python มีเฟรมเวิร์กส่วนต่อประสานกราฟิกกับผู้ใช้จำนวนมาก ตั้งแต่ Tkinter ไปจนถึงโซลูชันข้ามแพลตฟอร์มอื่นๆ รวมถึงการผูกเฉพาะแพลตฟอร์ม การสร้างส่วนต่อประสานกราฟิกกับผู้ใช้ทำได้ง่ายและรวดเร็วเมื่อรวม Python เข้ากับ Tkinter Python เหมาะอย่างยิ่งสำหรับการสร้าง GUI เพราะมีวิดเจ็ตในตัวจำนวนมาก มันสร้างหน้าต่างอย่างรวดเร็ว มีเทคนิคการจัดการเหตุการณ์ที่แข็งแกร่ง และมีความสามารถในการวาดภาพขั้นพื้นฐาน

Tkinter หรือ KIVY: ไหนดีกว่ากัน?

Kivy เป็นเฟรมเวิร์ก Python แบบโอเพ่นซอร์สฟรีสำหรับการสร้างหรือออกแบบโปรแกรมส่วนต่อประสานผู้ใช้ที่มีเอกลักษณ์แต่น่าดึงดูด หากคุณเป็นนักพัฒนาหลามที่ชอบสร้างแอป KIVY เป็นตัวเลือกที่ยอดเยี่ยมสำหรับการสร้างแอปพลิเคชันแบบไดนามิกมากขึ้น Tkinter เป็นอินเทอร์เฟซ Python ที่ใช้กันอย่างแพร่หลายมากที่สุดสำหรับการพัฒนาแอปพลิเคชัน GUI อย่างรวดเร็วและง่ายดาย หากคุณเพิ่งเริ่มใช้ Python และต้องการเรียนรู้วิธีสร้างอินเทอร์เฟซคอมพิวเตอร์ ให้เริ่มด้วย Tkinter และเรียนรู้พื้นฐาน