โครงการ 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 และเรียนรู้พื้นฐาน