Tkinter เป็นชุดเครื่องมือ Graphical User Interface (GUI) ที่คุณควรลองใช้หากคุณต้องการสำรวจพลังของ Python ในการสร้างแอปเดสก์ท็อป
เรามาดูพื้นฐานของโมดูล Tkinter GUI
windows ตรวจไม่พบการตั้งค่าพร็อกซีของเครือข่ายนี้โดยอัตโนมัติ windows 10
ตั้งค่า Tkinter
โดยปกติคุณไม่จำเป็นต้องติดตั้ง tkinter แยกต่างหากหากคุณได้ติดตั้ง Python เวอร์ชันที่ใหม่กว่า โดยเริ่มด้วย Python 3 อย่างไรก็ตาม ไลบรารีอาจไม่ทำงานกับ Python เวอร์ชันเก่า นี่เป็นปัญหาทั่วไปสำหรับผู้ใช้ Mac และ Linux เนื่องจากระบบปฏิบัติการเหล่านี้มักมาพร้อมกับ Python เวอร์ชันเก่าโดยค่าเริ่มต้น
โดยทั่วไป ในการใช้ tkinter โมดูล ตรวจสอบให้แน่ใจว่าคุณดาวน์โหลดและติดตั้ง Python เวอร์ชันล่าสุดที่เข้ากันได้บนพีซีของคุณจากทางการ python.org เว็บไซต์.
หากคุณใช้ Mac หรือ คุณสามารถดาวน์โหลด ActiveTcl เวอร์ชันล่าสุด a tkinter คอมไพเลอร์จาก ActiveState .
วิธีใช้ Tkinter
Tkinter ขึ้นอยู่กับในตัว TK ระดับ. และสรุปเหตุการณ์ทั้งหมดภายใน GUI ใน a เมนลูป . ดังนั้น เมนลูป กระดาษห่อทำให้ .ของคุณ tkinter รหัสปฏิบัติการได้
เพื่อเริ่มต้นกับ tkinter :
from tkinter import Tk
Tk().mainloop()
การรันโค้ดด้านบนจะทำให้ว่างเปล่า tkinter กรอบ.
อย่างไรก็ตาม คุณสมบัติการปรับแต่งของ Tkinter นั้นอยู่ในวิดเจ็ตในตัว
หากต้องการใช้วิดเจ็ตเหล่านี้ คุณสามารถนำเข้าจาก tkinter โดยแทนที่ จาก tkinter นำเข้า Tk กับ:
from tkinter import *
t = Tk()
t.mainloop()
คุณยังสามารถปรับขนาดหน้าต่างด้วยปุ่ม เรขาคณิต ฟังก์ชั่นแล้วระบุชื่อเรื่องโดยใช้ ชื่อ วิดเจ็ตของ tkinter :
t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()
วิดเจ็ตฉลาก Tkinter
Tkinter ให้คุณเขียนข้อความธรรมดาโดยตรงไปยัง GUI โดยใช้ ฉลาก วิดเจ็ต:
t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()
NS ตาราง () อย่างไรก็ตาม วิธีการนี้เป็นทางเลือกแทน หีบห่อ() กระบวนการ. มันติดวิดเจ็ตของคุณไว้ที่ GUI ทำให้มองเห็นได้
คุณยังสามารถระบุแบบอักษรสำหรับ .ของคุณ ฉลาก ข้อความ:
t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()
การทำงานกับวิดเจ็ตปุ่มใน Tkinter
ปุ่มคือวิดเจ็ตที่ใช้บ่อยที่สุดใน tkinter . และคุณสามารถเพิ่มปุ่มที่คลิกได้เหล่านี้ลงใน GUI ของคุณโดยใช้วิดเจ็ตปุ่มต่างๆ ในตัว
ต่อไปนี้คือวิธีเพิ่มปุ่มหลักใน GUI ของคุณโดยใช้ปุ่ม ปุ่ม วิดเจ็ต:
t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()
NS bg และ fg คำหลักอธิบายสีพื้นหลังของปุ่มและสีของข้อความภายในตามลำดับ
คุณยังสามารถปรับขนาดของปุ่มได้โดยใส่ปุ่ม ความสูง และ ความกว้าง พารามิเตอร์:
t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()
นี่คือผลลัพธ์สำหรับสิ่งนั้น:
ข้อผิดพลาด i/o ของฮาร์ดไดรฟ์
และหากคุณต้องการทำให้ปุ่มดูน่าดึงดูดยิ่งขึ้น คุณสามารถใส่ a การบรรเทา คีย์เวิร์ดแล้วปรับความกว้างของเส้นขอบ:
t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()
และดูเหมือนว่านี้:
แทนที่ ที่ยกขึ้น กับ แบน เพื่อดูว่ามันเกิดขึ้นได้อย่างไร
คุณสามารถเพิ่มปุ่มได้มากเท่าที่คุณต้องการ แต่คุณต้องระวังอย่าให้เนื้อหาทับซ้อนกัน
เพื่อหลีกเลี่ยงการทับซ้อนกัน คุณสามารถระบุตำแหน่งแถวและคอลัมน์สำหรับแต่ละปุ่มได้:
t = Tk()
Button(t, text=1, bg='black', fg='white').grid(row=1, column=1)
Button(t, text=2, bg='black', fg='white').grid(row=2, column=1)
Button(t, text=3, bg='black', fg='white').grid(row=3, column=1)
Button(t, text=4, bg='black', fg='white').grid(row=4, column=1)
t.mainloop()
เป็นทางเลือก สั่งการ อย่างไรก็ตาม คีย์เวิร์ดเพิ่มเหตุการณ์ลงใน ปุ่ม วิดเจ็ต โดยพื้นฐานแล้วจะยึดฟังก์ชันเสริมที่จัดการเหตุการณ์บางอย่างเมื่อคุณคลิกปุ่ม
ตัวอย่างเช่น โค้ดด้านล่างจะคูณค่าของแต่ละปุ่มด้วย 6 เมื่อคุณคลิก และเป็นไปตามฟังก์ชันที่กำหนดไว้ล่วงหน้า:
def buttonpress(r):
r = 6*r
Label(t, text=r, font=(60)).grid(row=5, column=2)
t = Tk()
Button(t, text = 1, bg = 'black', fg = 'white', width = 10, height = 2,
command = lambda:buttonpress(1)).grid(row=1, column = 1, pady = 6)
Button(t, text = 2, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(2)).grid(row = 2, column = 1, pady = 6)
Button(t, text = 3, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(3)).grid(row = 3, column = 1, pady = 6)
Button(t, text = 4, bg = 'black', fg = 'white', width = 10,
command = lambda:buttonpress(4)).grid(row = 4, column = 1, pady = 6)
t.mainloop()
ในรหัสข้างต้น ปุ่มกด จัดการเหตุการณ์การคูณ NS ปุ่ม วิดเจ็ตจากนั้นชี้ไปที่ตัวจัดการเหตุการณ์นั้นโดยใช้นิรนาม แลมบ์ดา การทำงาน.
และถ้าคุณกังวลเรื่อง แผ่นรอง คีย์เวิร์ดจะแยกแต่ละปุ่มออกจากแถวอย่างชัดเจน แทนที่สิ่งนี้ด้วย padx แยกปุ่มข้ามคอลัมน์ และคุณสามารถใช้คำหลักทั้งสองพร้อมกันเพื่อแยกปุ่มออกจากทั้งสองแกนตามที่คุณต้องการ
ที่กล่าวว่าคุณไม่ต้องการสร้างวงล้อใหม่สำหรับทุกปุ่มเหมือนที่คุณทำในรหัสก่อนหน้า การดำเนินการนี้ช้าลง อีกทั้งทำให้โค้ดของคุณอ่านยากและจำกัดขอบเขตให้แคบลง
แต่คุณทำได้ ใช้ for loop เพื่อหลีกเลี่ยงความซ้ำซากจำเจนี้
ดังนั้นนี่คือโค้ดด้านบนที่สั้นกว่าและดีกว่า:
def buttonpress(r):
r = 6*r
Label(t, text = r, font = (60)).grid(row = 5, column = 2)
t = Tk()
a = [1, 4, 6, 7]
for i in a:
j = lambda y = i:buttonpress(y)
Button(t, text = i, bg = 'black', fg = 'white', width = 10, height = 2,
command=j).grid(row = i, column = 1, pady = 6)
t.mainloop()
ปุ่มเมนูและปุ่มตรวจสอบ
มาสำรวจพลังของ .กันดีกว่า สำหรับ วนซ้ำเพื่อเพิ่มปุ่มเมนูไปยัง GUI ของคุณ:
from tkinter import *
t = Tk()
buttons = ['Files', 'Dashboard', 'Menu', 'Settings', 'Help']
m = 0
for i in range(len(buttons)):
# Get each text in the buttons array using a list index as m increases.
# Then let the column increase by 1 through the length of the array:
Menubutton(t, text=buttons[m], bg='blue', fg='white').grid(row=5, column=i)
m += 1
t.mainloop()
การเพิ่มปุ่มตรวจสอบให้กับ GUI ของคุณนั้นค่อนข้างง่ายเช่นกัน:
t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()
อย่าลังเลที่จะคูณปุ่มตรวจสอบนั้นโดยใช้ สำหรับ วนซ้ำเหมือนที่เราทำก่อนหน้านี้
วิธีสร้างเมนูแบบเลื่อนลงด้วยวิดเจ็ตเมนูของ Tkinter
NS เมนู วิดเจ็ตช่วยให้คุณออกแบบเมนูดรอปดาวน์ที่คลิกได้ใน tkinter .
ตามที่ระบุไว้ก่อนหน้านี้ tkinter มีตัวเลือกวิดเจ็ตมากมาย และคุณจะใช้บางส่วนในขณะออกแบบเมนูดรอปดาวน์ของคุณ
ต่อไปนี้คือตัวเลือกวิดเจ็ตทั่วไปบางส่วนที่คุณจะพบขณะทำดรอปดาวน์:
- add_cascade: จะแสดงป้ายเมนูและติดไว้ที่ที่มันอยู่
- add_separator: มันแบ่งเขตเมนูย่อยและจัดกลุ่มเป็นเมนูย่อยบนและล่าง
- add_command: นี่คือที่ที่คุณตั้งชื่อเมนูย่อยของคุณ ในท้ายที่สุด จะยอมรับอาร์กิวเมนต์คำสั่งซึ่งคุณสามารถระบุตัวจัดการเหตุการณ์ได้
นี่คือตัวอย่างแบบเลื่อนลงที่ใช้สามตัวเลือกเหล่านี้:
from tkinter import *
t = Tk()
fileOptions = ['New', 'open', 'Save', 'Save as']
fileOptionsAfterseparator = ['Import', 'Export', 'Exit']
viewOptions = ['Transform', 'Edit', 'Create']
menuBar = Menu(t)
file = Menu(menuBar, tearoff=0)
for i in fileOptions:
file.add_command(label=i, command=None)
file.add_separator()
for i in fileOptionsAfterseparator:
file.add_command(label=i, command=None)
menuBar.add_cascade(label='File', menu=file)
View = Menu(menuBar, tearoff=0)
for i in viewOptions:
View.add_command(label=i, command=None)
menuBar.add_cascade(label='View', menu=View)
t.config(menu=menuBar)
t.mainloop()
ดูว่ามีลักษณะอย่างไร:
เมนูตัวเลือก Tkinter
หนึ่ง เมนูตัวเลือก , ไม่เหมือนกับ เมนู ดรอปดาวน์ เปลี่ยนป้ายกำกับเป็นตัวเลือกที่เลือก
แม้ว่าคุณจะระบุค่าป้ายกำกับเริ่มต้นสำหรับเมนูตัวเลือกได้ แต่ก็ไม่มีป้ายกำกับตามค่าเริ่มต้น
ที่เกี่ยวข้อง: แนวคิดโครงการ Python เหมาะสำหรับผู้เริ่มต้น
นี่คือวิธีการสร้างเมนูตัวเลือกใน tkinter :
t = Tk()
Omenu = StringVar() #set the variable type of the options
Omenu.set('MUO') #specify a default value for the menu icon
OptionMenu(t, Omenu, 'MUO', 'Amazon', 'Tutorial').grid()
t.mainloop()
สร้างแอปเดสก์ท็อปที่นำกลับมาใช้ใหม่ได้ด้วย Tkinter
Tkinter นำเสนอคุณสมบัติมากมายที่ช่วยให้คุณสร้างแอปเดสก์ท็อป GUI แบบโต้ตอบได้ แม้ว่ามันอาจจะไม่มีคุณลักษณะการตกแต่งที่ยืดหยุ่นมากมายเช่นโมดูล Python GUI อื่น ๆ แต่ก็ยังเป็นเครื่องมือที่มีประโยชน์ที่ควรค่าแก่การสำรวจ และในขณะที่ตัวอย่างนี้แสดงเพียงแนวคิดพื้นฐานบางส่วนเท่านั้น tkinter นำเสนอคุณสมบัติขั้นสูงเพิ่มเติมที่คุณสามารถทดลองใช้ได้
ทำไมอีเมลของฉันไม่อัปเดตบน Android
ที่กล่าวว่า คุณสามารถสร้างเครื่องคิดเลขเดสก์ท็อป GUI สร้างโปรแกรมแก้ไขข้อความขนาดเล็ก หรือแม้แต่สร้างแอปเดสก์ท็อป GUI เพื่อจัดการสินค้าคงคลังของคุณ หากคุณต้องการขยายปีกของคุณและกลายเป็น GUI หลักบนเดสก์ท็อป คุณสามารถดูโมดูล GUI อื่นๆ ของ Python ได้
แบ่งปัน แบ่งปัน ทวีต อีเมล กุย? ส่วนต่อประสานกราฟิกกับผู้ใช้คืออะไร?คุณใช้ GUI หรือไม่? โอกาสที่คุณมีเพราะคุณใช้มันทุกวัน
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- Python
Idowu หลงใหลเกี่ยวกับเทคโนโลยีอัจฉริยะและประสิทธิภาพการทำงานทุกอย่าง ในเวลาว่าง เขาเล่นไปรอบๆ กับการเขียนโค้ดและเปลี่ยนไปเล่นกระดานหมากรุกเมื่อรู้สึกเบื่อ แต่เขาก็ชอบที่จะแยกตัวออกจากงานประจำบ้างเป็นบางครั้ง ความหลงใหลในการแสดงให้ผู้คนได้รู้จักเทคโนโลยีสมัยใหม่กระตุ้นให้เขาเขียนมากขึ้น
เพิ่มเติมจาก Idowu Omisolaสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก