Python: การเขียนโปรแกรม GUI - คุณจำเป็นต้องรู้
โปรแกรม Python นั้นดูดีกว่ามากเมื่อรันด้วย GUI (Graphical User Interface) มิฉะนั้นเครื่องมักจะใช้สำหรับการนี้ ที่นี่เราจะแสดงวิธีการตั้งโปรแกรม GUI ของคุณเองโดยใช้โมดูล TkInter ใน Python
การเขียนโปรแกรม GUI ด้วย Python: หน้าต่างพร้อม TkInter
ก่อนที่คุณจะสามารถเริ่มต้นใช้งาน GUI ได้จริงๆคุณต้องนำเข้าโมดูล TkInter ก่อนและสร้างหน้าต่าง
- ในการนำเข้าโมดูลให้เพิ่มคำสั่ง "from tkinter import *" และคำสั่ง "from tkinter import ttk" (โดยไม่ใส่เครื่องหมายอัญประกาศ) ที่จุดเริ่มต้นของรหัสของคุณ
- ตอนนี้คุณสามารถสร้างหน้าต่างใหม่ด้วยคำสั่ง "root = Tk ()" คุณสามารถใช้คำอื่นแทนคำว่า "รูต" อย่างไรก็ตามขอแนะนำให้ใช้ตัวแปรเดียวกันสำหรับทุกโปรแกรมเพื่อให้คุณสามารถค้นหาวิธีการเขียนโปรแกรมได้ง่ายขึ้น
- คุณสามารถระบุชื่อของหน้าต่างของคุณด้วยคำสั่ง "root.title (" Test ")" (โดยไม่ใส่เครื่องหมายอัญประกาศที่จุดเริ่มต้นและจุดสิ้นสุด) ในกรณีนี้หน้าต่างเรียกว่า "ทดสอบ"
- ในตอนท้ายของโปรแกรมของคุณคุณจะต้องแทรกคำสั่ง "root.mainloop ()" เพื่อให้โปรแกรมเสร็จสมบูรณ์
TkInter with Python: ตั้งโปรแกรมแถบเมนู
แถบเมนูสามารถพบได้ในเกือบทุกโปรแกรมในทุกวันนี้ คุณสามารถโปรแกรมเหล่านี้ได้อย่างง่ายดายด้วยโมดูล TkInter
- เป็นสิ่งสำคัญที่คุณได้ทำตามขั้นตอนข้างต้นทั้งหมดแล้ว รหัสสำหรับแถบเมนูต้องแทรกระหว่าง "root.title (" Test ")" และ "root.mainloop ()"
- คุณต้องเริ่มต้นการเขียนโปรแกรมแถบเมนูด้วยคำสั่ง "menubar = Menu (root)" (โดยไม่ใส่เครื่องหมายอัญประกาศ)
- คุณสามารถสร้างรายการเมนูแรกด้วยคำสั่ง "filemenu = Menu (เมนูย่อย, tearoff = 0)" แทนที่จะเป็นตัวแปร "filemenu" คุณสามารถเลือกตัวแปรของคุณเองได้
- เพิ่มรายการย่อยแรกด้วยคำสั่ง "filemenu.add_command (label =" Save ", command = save)" ในกรณีนี้รายการย่อยเรียกว่า "บันทึก" หากคุณกดปุ่มนี้คำสั่ง "save ()" จะถูกดำเนินการ เป็นสิ่งสำคัญที่คุณต้องกำหนดคำสั่งในรหัสก่อนคำสั่ง "root = Tk ()"
- ตอนนี้คุณสามารถเพิ่มรายการย่อยได้มากเท่าที่คุณต้องการ เคล็ดลับ: คุณยังสามารถใช้คำสั่ง "filemenu.add_separator ()" เพื่อเพิ่มบรรทัดการแบ่งระหว่างรายการย่อยแต่ละรายการ
- เมื่อคุณทำรายการเมนูเสร็จแล้วอย่าลืมเพิ่มคำสั่ง "menubar.add_cascade (label =" file ", menu = filemenu)" คำสั่งนี้จะให้รายการเมนูชื่อ "ไฟล์"
- หากคุณต้องการเพิ่มรายการเมนูเพิ่มเติมคุณจะต้องเปลี่ยนตัวแปรของรายการเมนูเพื่อไม่ให้เกิดข้อผิดพลาด แทนที่จะเป็น "filemenu" คุณสามารถใช้ "editmenu" ทุกครั้ง
- อย่าลืมเพิ่มคำสั่ง "root.config (menu = menubar)" หน้าคำสั่ง "root.mainloop ()" ที่ท้ายรหัสของคุณเพื่อให้แถบเมนูของคุณปรากฏขึ้น
GUI พร้อม Python: เพิ่มป้ายกำกับและรายการ
ตอนนี้คุณสามารถเริ่มเพิ่มข้อความและฟิลด์ข้อความในโปรแกรม Python ของคุณ
- คุณสามารถเพิ่มป้ายกำกับแรกด้วยคำสั่ง "a = Label (text =" ชื่อ: ", bg =" white ", fg =" black ")" (ไม่มีเครื่องหมายคำพูด) ป้ายกำกับนี้แสดงโดยตัวแปร "a" และมีข้อความ "ชื่อ:" สีตัวอักษรของข้อความเป็นสีดำและพื้นหลังเป็นสีขาว
- เพื่อให้ป้ายชื่อปรากฏขึ้นคุณจะต้องเขียนคำสั่ง "a.grid ()" ด้านล่าง คุณจะพบสิ่งที่คุณต้องการตาราง () สำหรับในวรรคถัดไป
- คุณสามารถสร้างฟิลด์ข้อความด้วยคำสั่ง "b = Entry ()" ในกรณีนี้ฟิลด์ข้อความจะถูกแทนด้วยตัวแปร "b"
- อีกครั้งคุณควรแทรกคำสั่งกริดอีกครั้ง: "b.grid ()"
การเขียนโปรแกรม TkInter: Grid and Pack - The Geometry Manager
คุณต้องสงสัยว่าคุณต้องการคำสั่งกริดสำหรับ:
- คำสั่งนี้เป็นผู้จัดการรูปทรงเรขาคณิต ถ้าวงเล็บว่างเปล่ามันไม่ทำอะไรเลย
- อย่างไรก็ตามคุณสามารถเปลี่ยนคำสั่งดังนี้: "b.grid (row = 1, column = 1, sticky = W)" ฟิลด์ข้อความจะอยู่ในแถวที่ 1 และในคอลัมน์ 1 และจัดแนวไปทางทิศตะวันตก (ขอบซ้ายของหน้าจอ)
- คุณสามารถใช้คำสั่งกริดเพื่อระบุตำแหน่งและทิศทางของวัตถุแต่ละชิ้น อย่างไรก็ตามโปรดทราบว่าด้วยคำสั่งแถวนี้ 0 คือแถวแรกและคอลัมน์ 0 คือคอลัมน์แรก
- นอกเหนือจากตัวจัดการเรขาคณิตกริดแล้วยังมีตัวจัดการเรขาคณิตแพ็ค ตัวอย่างจะเป็นคำสั่ง "b.pack (side = 'top', fill =" x ", padx =" 5 ", pady =" 10 ")" ด้วยแอตทริบิวต์ "side" คุณสามารถกำหนดตำแหน่งใน GUI ได้ ด้วยคุณสมบัติ "เติม" คุณสามารถปรับความสูงและความกว้างขององค์ประกอบ GUI เป็นเฟรมที่กำหนด ด้วย "padx" และ "pady" คุณสามารถกำหนดพื้นที่รอบ ๆ องค์ประกอบ GUI
- อย่างไรก็ตามโปรดทราบว่าคุณสามารถใช้กริดหรือผู้จัดการเรขาคณิตแพ็คในโปรแกรม Python แต่ไม่เคยทั้งสองพร้อมกัน
การเขียนโปรแกรม GUI: เพิ่มปุ่ม
บ่อยครั้งที่ปุ่มสามารถพบได้ในโปรแกรม Python มีปุ่มมาตรฐานสำคัญสามปุ่ม:
- ตัวอย่างเช่นคุณสามารถเพิ่มปุ่มปกติด้วยคำสั่ง "button1 = ปุ่ม (text =" Test ", bg =" red ", fg =" black ", command = test1)" (ไม่มีเครื่องหมายคำพูด) หากกดปุ่มนี้จะมีการใช้งานฟังก์ชัน "test1 ()"
- นอกเหนือจากปุ่มปกติแล้วยังมีปุ่มตรวจสอบอีกด้วย ตัวอย่างนี้จะเป็น "checkbutton1 = Checkbutton (root, text =" Test ", onvalue = 1, offvalue = 0, variable = var1)" เป็นสิ่งสำคัญที่คุณจะต้องแทรกคำสั่ง "var1 = IntVar ()" ไว้ล่วงหน้า นี่เป็นวิธีเดียวที่โปรแกรมรู้ว่าตัวแปร "var1" เป็นตัวแปรจำนวนเต็ม หากเปิดใช้งานช่องทำเครื่องหมาย "var1" จะรับค่า "1" (ตามค่า) หากไม่ได้เปิดใช้งานช่องทำเครื่องหมายนี้จะถือว่าเป็นค่า 0 (offvalue) เคล็ดลับ: คุณสามารถค้นหาค่านี้ได้ด้วยคำสั่ง "var1.get ()"
- ในที่สุดก็มีปุ่มตัวเลือก คุณสามารถเพิ่มสิ่งนี้ได้ด้วยคำสั่ง "radiobutton1 = Radiobutton (root, text =" Test ", value = 1)" ปุ่มตัวเลือกทั้งหมดที่มีค่าเดียวกันภายใต้ "ค่า" จะเปิดใช้งานทันทีที่มีการเปิดใช้งานปุ่มใดปุ่มหนึ่งเหล่านี้ ดังนั้นคุณควรป้อนค่าที่แตกต่างกันทุกครั้งเพื่อเปิดใช้งานปุ่มเดียวเท่านั้น
- อย่างไรก็ตามอย่าลืมจัดการปุ่มของคุณด้วย grid หรือ pack geometry manager
Python: ซ่อนเทอร์มินัล
ปกติเทอร์มินัลจะปรากฏขึ้นสำหรับโปรแกรม Python ทุกโปรแกรมโดยไม่คำนึงว่าจะมีหรือไม่มี GUI อย่างไรก็ตามนี่เป็นเรื่องที่น่ารำคาญมากโดยเฉพาะอย่างยิ่งสำหรับโปรแกรมที่มี GUI อย่างไรก็ตามคุณสามารถซ่อนได้ ตอนนี้เราจะแสดงวิธีการใช้งานใน Windows 10:
- เริ่ม Explorer และคลิกที่แท็บ "ดู"
- ตอนนี้ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานช่องทำเครื่องหมาย "นามสกุลไฟล์ชื่อ"
- เปลี่ยนชื่อไฟล์ Python ของคุณเพื่อไม่ให้นามสกุลไฟล์เป็น. py แต่ .pyw
เคล็ดลับเพิ่มเติมเกี่ยวกับ Python ในคู่มือ CHIP ของเรา
เคล็ดลับ: คุณสามารถค้นหาบทช่วยสอนการเขียนโปรแกรมเพิ่มเติมได้ในหน้าหัวข้อภาษาการเขียนโปรแกรม Python ของเรา ที่นั่นเราแสดงให้คุณเห็นว่าคุณสามารถใช้ฟังก์ชัน range และ xrange ได้อย่างไร