Mula Membuat Aplikasi Desktop di Python Dengan Perpustakaan Tkinter GUI

Mula Membuat Aplikasi Desktop di Python Dengan Perpustakaan Tkinter GUI

Tkinter adalah toolkit Grafik Antara Muka Pengguna (GUI) yang harus anda cuba jika anda ingin meneroka kehebatan Python dalam membuat aplikasi desktop.



Di sini, kita melihat asas-asas modul Tkinter GUI.





teks percuma dalam talian menghantar dan menerima mesej teks

Persediaan Tkinter

Biasanya, anda tidak perlu memasang tkinter secara berasingan jika anda memasang versi Python yang lebih baru, bermula dengan Python 3. Namun, perpustakaan mungkin tidak berfungsi dengan versi Python lama. Ini adalah masalah biasa bagi pengguna Mac dan Linux, kerana OS ini biasanya dilengkapi dengan versi Python yang lebih lama secara lalai.





Secara amnya, untuk menggunakan tkinter modul, pastikan anda memuat turun dan memasang Python versi serasi terkini pada PC anda dari pejabat python.org laman web.

Sekiranya anda menggunakan Mac, sebagai alternatif, anda boleh memuat turun versi terbaru ActiveTcl, a tkinter penyusun dari Negeri Aktif .



Cara Menggunakan Tkinter

Tkinter bergantung pada bawaannya TK kelas. Dan ini merangkum semua peristiwa dalam GUI dalam mainloop . Oleh itu, mainloop pembungkus membuat anda tkinter kod boleh dilaksanakan.

Untuk memulakan tkinter :





from tkinter import Tk
Tk().mainloop()

Menjalankan kod di atas berputar kosong tkinter kerangka.

Ciri penyesuaian Tkinter, bagaimanapun, terdapat dalam widget bawaannya.





Untuk menggunakan widget ini, anda dapat mengimportnya dari tkinter dengan menggantikan dari Tkinter import Tk dengan:

from tkinter import *
t = Tk()
t.mainloop()

Anda juga boleh menyesuaikan ukuran Window dengan geometri fungsi dan kemudian tentukan tajuk menggunakan tajuk widget dari tkinter :

t = Tk()
t.geometry('600x600')
t.title('Tk Tutorial')
t.mainloop()

Widget Label Tkinter

Tkinter membolehkan anda menulis teks biasa terus ke GUI menggunakan Label widget:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial').grid()
t.mainloop()

The grid () kaedah, bagaimanapun, adalah alternatif untuk pek() kaedah. Ini melekatkan widget anda ke GUI, membuatnya dapat dilihat.

Anda juga boleh menentukan fon untuk anda Label teks:

t = Tk()
Label(t, text = 'MUO Tkinter tutorial', font=(60)).grid()
t.mainloop()

Bekerja Dengan Widget Butang di Tkinter

Butang adalah beberapa widget yang paling banyak digunakan di tkinter . Dan anda boleh menambahkan butang yang dapat diklik ini ke GUI anda menggunakan pelbagai widget butang terbina dalam.

Inilah cara menambahkan butang utama ke GUI anda menggunakan Butang widget:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white').grid()
t.mainloop()

The bg dan fg kata kunci menerangkan warna latar butang dan warna teks di dalamnya masing-masing.

Anda juga dapat menyesuaikan dimensi butang dengan memasukkan ketinggian dan lebar parameter:

t = Tk()
Button(t, text = 'Clickable', bg = 'black', fg = 'white', , ).grid()
t.mainloop()

Inilah hasilnya:

kaedah terbaik untuk menjual buku komik

Dan jika anda ingin menjadikan butang lebih menarik secara visual, anda boleh memasukkan a kelegaan kata kunci dan kemudian sesuaikan lebar sempadannya:

t = Tk()
Button(t, text='Clickable', bg='blue', fg='white',
height=2, width=10, relief=RAISED, borderwidth=6).grid()
t.mainloop()

Dan kelihatan seperti ini:

Ganti DIBANGKITKAN dengan FLAT untuk melihat bagaimana ia berlaku.

Anda boleh menambah seberapa banyak butang yang anda mahu. Tetapi anda harus berhati-hati untuk mengelakkan kandungan bertindih.

Untuk mengelakkan pertindihan, anda boleh menentukan kedudukan baris dan lajur untuk setiap butang:

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()

Pilihan arahan kata kunci, bagaimanapun, menambahkan peristiwa ke Butang widget. Pada dasarnya, ia merangkumi fungsi pilihan yang menangani peristiwa tertentu apabila anda mengklik butang.

Kod di bawah ini, misalnya, menggandakan nilai setiap butang dengan 6 apabila anda mengkliknya. Dan ia berdasarkan fungsi yang telah ditentukan:

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()

Dalam kod di atas, tekan butang mengendalikan acara pendaraban. The Butang widget kemudian menunjuk ke pengendali acara tersebut dengan menggunakan nama tanpa nama lambda fungsi.

Dan jika anda bimbang tentang tuala wanita kata kunci, dengan jelas memisahkan setiap butang di seberang baris. Mengganti ini dengan padx memisahkan butang di lajur. Dan anda boleh menggunakan kedua-dua kata kunci secara serentak untuk memisahkan butang di kedua paksi yang anda mahukan.

Oleh itu, anda tidak mahu mencipta semula roda untuk setiap butang seperti yang anda lakukan dalam kod sebelumnya. Ini melambatkan masa pelaksanaan, dan ini menjadikan kod anda sukar dibaca dan dipersempit.

Tetapi anda boleh gunakan gelung untuk untuk mengelakkan pengulangan ini.

Jadi, inilah versi kod di atas yang lebih pendek dan lebih baik:

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()

Mari kita lebih jauh meneroka kehebatan untuk gelung untuk menambah butang menu ke GUI anda:

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()

Menambah butang semak ke GUI anda juga cukup mudah:

t = Tk()
Checkbutton(t, text = 'Select option').grid()
t.mainloop()

Jangan ragu untuk melipatgandakan butang cek dengan menggunakan untuk gelung, seperti yang kita lakukan sebelumnya.

Cara Membuat Menu Dropdown Dengan Widget Menu Tkinter

The Menu widget membolehkan anda merancang menu lungsur turun yang dapat diklik tkinter .

Seperti yang dinyatakan sebelum ini, tkinter menawarkan banyak pilihan widget. Dan anda akan menggunakan sebahagiannya semasa merancang menu lungsur anda.

Berikut adalah beberapa pilihan widget biasa yang akan anda temui semasa membuat dropdown:

  • tambah_cascade: Ia memaparkan label menu dan meletakkannya di tempatnya.
  • add_separator: Ini membezakan submenu dan mengelompokkannya ke submenu atas dan bawah.
  • tambah_perintah: Di sinilah anda memberikan nama submenu anda. Pada akhirnya, ia menerima argumen perintah di mana anda dapat menentukan pengendali peristiwa.

Berikut adalah contoh dropdown yang menggunakan tiga pilihan ini:

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()

Lihat bagaimana rupanya:

Menu Pilihan Tkinter

Seorang Pilihan , tidak seperti Menu dropdown, menukar labelnya ke pilihan yang dipilih.

Walaupun anda dapat menentukan nilai label lalai untuk menu pilihan, tidak ada label secara lalai.

Berkaitan: Idea Projek Python Sesuai untuk Pemula

Inilah cara membuat menu pilihan di 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()

Bina Aplikasi Desktop yang Boleh Digunakan Semula Dengan Tkinter

Tkinter menawarkan pelbagai ciri yang membantu anda membuat aplikasi desktop GUI interaktif. Walaupun mungkin tidak mempunyai banyak ciri kecantikan yang fleksibel seperti beberapa modul Python GUI yang lain, ia masih merupakan alat yang berguna untuk diterokai. Walaupun contoh di sini hanya menunjukkan beberapa konsep asas, tkinter menawarkan ciri lebih maju yang boleh anda cuba.

windows 10 tidak akan dimulakan dalam mod selamat

Walaupun begitu, anda boleh membina kalkulator desktop GUI, membuat penyunting teks mini, atau bahkan membuat aplikasi desktop GUI untuk menguruskan inventori anda. Sekiranya anda ingin melebarkan sayap anda dan menjadi jurusan GUI desktop, anda juga boleh melihat modul GUI lain dari Python.

Berkongsi Berkongsi Tweet E-mel GUI? Apakah Antaramuka Pengguna Grafik?

Adakah anda menggunakan GUI? Kemungkinan anda ada kerana anda menggunakannya setiap hari.

Baca Seterusnya
Topik-topik yang berkaitan
  • Pengaturcaraan
  • Python
Mengenai Pengarang Idisou Omisola(94 Artikel Diterbitkan)

Idowu meminati apa sahaja teknologi pintar dan produktiviti. Pada masa lapang, dia bermain-main dengan pengekodan dan beralih ke papan catur ketika dia bosan, tetapi dia juga suka melepaskan diri dari rutin sekali-sekala. Kesungguhannya untuk menunjukkan kepada orang-orang tentang teknologi moden mendorongnya untuk menulis lebih banyak lagi.

Lagi Dari Idowu Omisola

Langgan buletin kami

Sertailah buletin kami untuk mendapatkan petua, ulasan, ebook percuma, dan tawaran eksklusif!

Klik di sini untuk melanggan