Simulang Lumikha ng Mga Desktop App sa Python Gamit ang Tkinter GUI Library

Simulang Lumikha ng Mga Desktop App sa Python Gamit ang Tkinter GUI Library

Ang Tkinter ay isang tool na Graphical User Interface (GUI) na dapat mong subukan kung nais mong tuklasin ang lakas ng Python sa paglikha ng mga desktop app.





Dito, titingnan namin ang mga pangunahing kaalaman sa module ng Tkinter GUI.





kung paano patakbuhin ang mac sa windows

Pag-setup ng Tkinter

Karaniwan, hindi mo kailangang mag-install tkinter hiwalay kung nag-install ka ng isang mas huling bersyon ng Python, na nagsisimula sa Python 3. Ang library ay maaaring hindi gumana sa mga lumang bersyon ng Python. Ito ay isang pangkaraniwang problema para sa mga gumagamit ng Mac at Linux, dahil ang mga OS na ito ay karaniwang may kasamang mga mas lumang bersyon ng Python bilang default.





Pangkalahatan, upang magamit ang tkinter module, tiyaking na-download at na-install mo ang pinakabagong katugmang bersyon ng Python sa iyong PC mula sa opisyal python.org website.

Kung nasa Mac ka, bilang kahalili, maaari mong i-download ang pinakabagong bersyon ng ActiveTcl, a tkinter tagatala mula sa Aktibo ng Estado .



Paano Gumamit ng Tkinter

Ang Tkinter ay nakasalalay sa built-in nito TK klase At binabalot nito ang lahat ng mga kaganapan sa loob ng GUI sa a mainloop . Kaya, ang mainloop balot ang gumagawa ng iyong tkinter maipapatupad ang code

Upang makapagsimula sa tkinter :





from tkinter import Tk
Tk().mainloop()

Ang pagpapatakbo ng code sa itaas ay umiikot nang walang laman tkinter frame

Ang mga tampok sa pagpapasadya ng Tkinter, gayunpaman, ay nasa mga built-in na widget.





Upang magamit ang mga widget na ito, maaari mong mai-import ang mga ito mula sa tkinter sa pamamagitan ng pagpapalit mula sa tkinter import Tk kasama ang:

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

Maaari mo ring ayusin ang laki ng Window sa geometry pagpapaandar at pagkatapos ay tukuyin ang isang pamagat gamit ang pamagat widget ng tkinter :

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

Widget ng Tkinter Label

Hinahayaan ka ng Tkinter na sumulat ng mga simpleng teksto nang direkta sa GUI gamit ang Tatak widget:

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

Ang grid () paraan, gayunpaman, ay isang kahalili sa pack () pamamaraan Dumidikit nito ang iyong mga widget sa GUI, ginagawa itong nakikita.

Maaari mo ring tukuyin ang isang font para sa iyong Tatak teksto:

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

Paggawa gamit ang Button Widgets sa Tkinter

Ang mga pindutan ay ilan sa mga pinaka ginagamit na mga widget sa tkinter . At maaari mong idagdag ang mga na-click na pindutang ito sa iyong GUI gamit ang iba't ibang mga built-in na widget na button.

Narito kung paano magdagdag ng pangunahing pindutan sa iyong GUI gamit ang Pindutan widget:

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

Ang bg at fg inilalarawan ng mga keyword ang kulay ng background ng pindutan at ang kulay ng teksto sa loob nito ayon sa pagkakabanggit.

Maaari mo ring ayusin ang sukat ng pindutan sa pamamagitan ng pagsasama ng taas at lapad mga parameter:

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

Narito ang output para sa:

kung paano makakuha ng mac sa windows

At kung nais mong gawing mas kaakit-akit ang pindutan, maaari kang magsama ng a kaluwagan keyword at pagkatapos ay ayusin ang lapad ng hangganan nito:

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

At ganito ang hitsura:

Palitan ITINAAS kasama si FLAT upang makita kung paano ito maganap.

Maaari kang magdagdag ng maraming mga pindutan hangga't gusto mo. Ngunit mag-ingat ka upang maiwasan ang overlap ng nilalaman.

Upang maiwasan ang overlap, maaari mong tukuyin ang posisyon ng row at haligi para sa bawat pindutan:

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

Isang opsyonal utos Ang keyword, gayunpaman, ay nagdaragdag ng mga kaganapan sa Pindutan widget Sa kakanyahan, naka-angkla ito ng isang opsyonal na pagpapaandar na humahawak sa ilang mga kaganapan kapag nag-click ka sa isang pindutan.

Ang code sa ibaba, halimbawa, ay pinaparami ang halaga ng bawat pindutan ng 6 kapag na-click mo ito. At batay ito sa isang paunang natukoy na pagpapaandar:

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

Sa code sa itaas, pindutan ng pindutan humahawak sa kaganapan ng pagpaparami. Ang Pindutan Itinuturo ng widget pagkatapos ang handler ng kaganapan gamit ang isang hindi nagpapakilala lambda pagpapaandar

At kung nag-aalala ka tungkol sa pads keyword, malinaw na pinaghihiwalay nito ang bawat pindutan sa hilera. Pinalitan ito ng padx pinaghihiwalay ang mga pindutan sa kabuuan ng haligi. At maaari mong gamitin ang parehong mga keyword nang sabay-sabay upang paghiwalayin ang mga pindutan sa parehong mga palakol ayon sa gusto mo.

Sinabi na, hindi mo nais na likhain muli ang gulong para sa bawat pindutan tulad ng ginawa mo sa nakaraang code. Pinapabagal nito ang oras ng pagpapatupad, kasama ang pagpapahirap basahin ang iyong code at paliitin.

Ngunit maaari mo gumamit ng para sa loop upang maiwasan ang pag-uulit na ito.

Kaya narito ang isang mas maikli at mas mahusay na bersyon ng code sa itaas:

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

Lalo nating tuklasin ang lakas ng para sa loop upang magdagdag ng mga pindutan ng menu sa iyong 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()

Ang pagdaragdag ng mga pindutan ng pag-check sa iyong GUI ay medyo madali din:

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

Huwag mag-atubiling i-multiply ang check button na iyon gamit ang para sa loop, tulad ng ginawa namin kanina.

Paano Lumikha ng isang Dropdown Menu Sa Menu ng Tkinter's Widget

Ang Menu Hinahayaan ka ng widget na mag-disenyo ng mga nai-click na dropdown na menu sa tkinter .

Tulad ng nakasaad kanina, tkinter nag-aalok ng maraming mga pagpipilian sa widget. At gagamitin mo ang ilan sa mga ito habang dinidisenyo ang iyong dropdown menu.

Narito ang ilan sa mga karaniwang pagpipilian ng mga widget na mahahanap mo habang gumagawa ng isang dropdown:

  • add_cascade: Ipinapakita nito ang isang label ng menu at ididikit ito kung saan ito kabilang.
  • add_separator: Tinutukoy nito ang mga submenus at pinangkat ang mga ito sa pang-itaas at mas mababang submenus.
  • add_command: Dito mo bibigyan ng pangalan ang iyong submenu. Sa huli, tumatanggap ito ng isang argument ng utos kung saan maaari mong tukuyin ang isang handler ng kaganapan.

Narito ang isang halimbawa ng dropdown na gumagamit ng tatlong pagpipilian na ito:

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

Tingnan ang hitsura nito:

Menu ng Mga Pagpipilian sa Tkinter

Isang Optionmenu , hindi katulad ng Menu dropdown, inililipat ang label nito sa isang napiling pagpipilian.

Bagaman maaari mong tukuyin ang isang default na halaga ng label para sa isang menu ng mga pagpipilian, wala itong label bilang default.

Kaugnay: Mga Ideya ng Project sa Python na Angkop para sa mga Nagsisimula

Narito kung paano lumikha ng isang menu ng mga pagpipilian sa 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()

Bumuo ng isang Reusable Desktop App Sa Tkinter

Nag-aalok ang Tkinter ng isang hanay ng mga tampok na makakatulong sa iyong makagawa ng mga interactive na GUI desktop app. Bagaman hindi ito maaaring magkaroon ng maraming kakayahang umangkop na mga tampok sa pagpapaganda tulad ng ilang iba pang mga module ng Python GUI, ito ay isang madaling gamiting tool na nagkakahalaga ng paggalugad. At habang ang mga halimbawa dito ay nagpapakita lamang ng ilan sa mga pangunahing konsepto ng pangunahing kaalaman, tkinter nag-aalok ng mas advanced na mga tampok na maaari mong subukan.

kung paano makakuha ng higit pang ram sa pc

Sinabi nito, maaari kang bumuo ng isang calculator ng GUI desktop, gumawa ng isang mini text editor, o kahit na lumikha ng isang GUI desktop app upang pamahalaan ang iyong mga imbentaryo. Kung nais mong ikalat ang iyong mga pakpak at maging isang pangunahing desktop ng GUI, maaari mo ring suriin ang iba pang mga module ng GUI ng Python.

Magbahagi Magbahagi Mag-tweet Email GUI? Ano ang isang Graphic User Interface?

Gumagamit ka ba ng isang GUI? Malamang na mayroon ka dahil ginagamit mo ang mga ito bawat solong araw.

Basahin Susunod
Mga Kaugnay na Paksa
  • Programming
  • Sawa
Tungkol sa May-akda Idisou Omisola(94 na artikulong nalathala)

Si Idowu ay madamdamin tungkol sa anumang matalinong tech at pagiging produktibo. Sa kanyang libreng oras, naglalaro siya kasama ang pag-coding at paglipat sa chessboard kapag siya ay naiinip, ngunit gusto din niya ang paglayo mula sa nakagawiang gawain sa isang sandali. Ang kanyang hilig sa pagpapakita sa mga tao ng paraan sa paligid ng modernong tech ay nag-uudyok sa kanya na magsulat pa.

Higit pa Mula sa Idowu Omisola

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe