Python 3 - การเขียนโปรแกรม GUI (Tkinter)

Python มีตัวเลือกต่างๆสำหรับการพัฒนาส่วนต่อประสานผู้ใช้แบบกราฟิก (GUI) คุณสมบัติที่สำคัญที่สุดอยู่ด้านล่าง

  • Tkinter- Tkinter เป็นส่วนต่อประสาน Python กับชุดเครื่องมือ Tk GUI ที่มาพร้อมกับ Python เราจะดูตัวเลือกนี้ในบทนี้

  • wxPython- นี่คืออินเทอร์เฟซ Python แบบโอเพ่นซอร์สสำหรับ wxWidgets GUI toolkit คุณสามารถค้นหากวดวิชาที่สมบูรณ์เกี่ยวกับ wxPython ที่นี่

  • PyQt− นี่เป็นอินเทอร์เฟซ Python สำหรับไลบรารี Qt GUI ข้ามแพลตฟอร์มยอดนิยม TutorialsPoint มีการกวดวิชาที่ดีมากใน PyQt ที่นี่

  • JPython - JPython เป็นพอร์ต Python สำหรับ Java ซึ่งทำให้สคริปต์ Python สามารถเข้าถึงไลบรารีคลาส Java บนเครื่องท้องถิ่นได้อย่างราบรื่น http://www.jython.org.

มีอินเทอร์เฟซอื่น ๆ อีกมากมายซึ่งคุณสามารถหาได้จากอินเทอร์เน็ต

การเขียนโปรแกรม Tkinter

Tkinter เป็นไลบรารี GUI มาตรฐานสำหรับ Python Python เมื่อรวมกับ Tkinter เป็นวิธีที่ง่ายและรวดเร็วในการสร้างแอปพลิเคชัน GUI Tkinter นำเสนออินเทอร์เฟซเชิงวัตถุที่มีประสิทธิภาพให้กับชุดเครื่องมือ Tk GUI

การสร้างแอปพลิเคชัน GUI โดยใช้ Tkinter เป็นเรื่องง่าย สิ่งที่คุณต้องทำคือทำตามขั้นตอนต่อไปนี้ -

  • นำเข้าโมดูลTkinter

  • สร้างหน้าต่างหลักของแอปพลิเคชัน GUI

  • เพิ่มวิดเจ็ตที่กล่าวถึงข้างต้นอย่างน้อยหนึ่งรายการในแอปพลิเคชัน GUI

  • เข้าสู่ลูปเหตุการณ์หลักเพื่อดำเนินการกับแต่ละเหตุการณ์ที่เรียกโดยผู้ใช้

ตัวอย่าง

#!/usr/bin/python3

import tkinter # note that module name has changed from Tkinter in Python 2 to tkinter in Python 3
top = tkinter.Tk()
# Code to add widgets will go here...
top.mainloop()

สิ่งนี้จะสร้างหน้าต่างต่อไปนี้ -

วิดเจ็ต Tkinter

Tkinter มีการควบคุมต่างๆเช่นปุ่มป้ายกำกับและกล่องข้อความที่ใช้ในแอปพลิเคชัน GUI การควบคุมเหล่านี้มักเรียกว่าวิดเจ็ต

ขณะนี้มีวิดเจ็ต 15 ประเภทใน Tkinter เรานำเสนอวิดเจ็ตเหล่านี้พร้อมทั้งคำอธิบายสั้น ๆ ในตารางต่อไปนี้ -

ซีเนียร์ ตัวดำเนินการและคำอธิบาย
1 ปุ่ม

วิดเจ็ตปุ่มใช้เพื่อแสดงปุ่มในแอปพลิเคชันของคุณ

2 ผ้าใบ

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

3 ปุ่มตรวจสอบ

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

4 รายการ

วิดเจ็ต Entry ใช้เพื่อแสดงฟิลด์ข้อความบรรทัดเดียวสำหรับรับค่าจากผู้ใช้

5 กรอบ

วิดเจ็ต Frame ใช้เป็นวิดเจ็ตคอนเทนเนอร์เพื่อจัดระเบียบวิดเจ็ตอื่น ๆ

6 ฉลาก

วิดเจ็ต Label ใช้เพื่อจัดเตรียมคำบรรยายบรรทัดเดียวสำหรับวิดเจ็ตอื่น ๆ นอกจากนี้ยังสามารถมีรูปภาพ

7 Listbox

วิดเจ็ต Listbox ใช้เพื่อจัดเตรียมรายการตัวเลือกให้กับผู้ใช้

8 เมนู

วิดเจ็ต Menubutton ใช้เพื่อแสดงเมนูในแอปพลิเคชันของคุณ

9 เมนู

วิดเจ็ตเมนูใช้เพื่อจัดเตรียมคำสั่งต่างๆให้กับผู้ใช้ คำสั่งเหล่านี้มีอยู่ใน Menubutton

10 ข้อความ

วิดเจ็ตข้อความใช้เพื่อแสดงฟิลด์ข้อความหลายบรรทัดสำหรับการยอมรับค่าจากผู้ใช้

11 Radiobutton

วิดเจ็ต Radiobutton ใช้เพื่อแสดงตัวเลือกต่างๆเป็นปุ่มตัวเลือก ผู้ใช้สามารถเลือกได้ครั้งละหนึ่งตัวเลือกเท่านั้น

12 มาตราส่วน

วิดเจ็ตมาตราส่วนใช้เพื่อจัดเตรียมวิดเจ็ตตัวเลื่อน

13 แถบเลื่อน

วิดเจ็ต Scrollbar ใช้เพื่อเพิ่มความสามารถในการเลื่อนไปยังวิดเจ็ตต่างๆเช่นกล่องรายการ

14 ข้อความ

วิดเจ็ตข้อความใช้เพื่อแสดงข้อความในหลายบรรทัด

15 ระดับสูง

วิดเจ็ต Toplevel ใช้เพื่อจัดเตรียมคอนเทนเนอร์หน้าต่างแยกต่างหาก

16 Spinbox

วิดเจ็ต Spinbox เป็นตัวแปรของวิดเจ็ต Tkinter Entry มาตรฐานซึ่งสามารถใช้เพื่อเลือกจากจำนวนค่าคงที่

17 PanedWindow

PanedWindow คือวิดเจ็ตคอนเทนเนอร์ที่อาจมีบานหน้าต่างจำนวนเท่าใดก็ได้โดยจัดเรียงในแนวนอนหรือแนวตั้ง

18 LabelFrame

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

19 tkMessageBox

โมดูลนี้ใช้เพื่อแสดงกล่องข้อความในแอปพลิเคชันของคุณ

แอตทริบิวต์มาตรฐาน

ให้เราดูว่าคุณลักษณะทั่วไปบางประการเช่นขนาดสีและแบบอักษรมีการระบุไว้อย่างไร

  • Dimensions

  • Colors

  • Fonts

  • Anchors

  • รูปแบบการบรรเทา

  • Bitmaps

  • Cursors

การจัดการรูปทรงเรขาคณิต

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

  • วิธีแพ็ค () - ตัวจัดการรูปทรงเรขาคณิตนี้จะจัดระเบียบวิดเจ็ตในบล็อกก่อนที่จะวางไว้ในวิดเจ็ตหลัก

  • วิธีกริด () - ตัวจัดการรูปทรงเรขาคณิตนี้จัดระเบียบวิดเจ็ตในโครงสร้างที่เหมือนตารางในวิดเจ็ตหลัก

  • สถานที่ () วิธีการ - ตัวจัดการรูปทรงเรขาคณิตนี้จัดระเบียบวิดเจ็ตโดยวางไว้ในตำแหน่งเฉพาะในวิดเจ็ตหลัก