Begynn å lage skrivebordsprogrammer i Python med Tkinter GUI -biblioteket

Begynn å lage skrivebordsprogrammer i Python med Tkinter GUI -biblioteket

Tkinter er et verktøy for grafisk brukergrensesnitt (GUI) du bør prøve hvis du vil utforske kraften til Python når du oppretter skrivebordsprogrammer.





Her tar vi en titt på det grunnleggende i Tkinter GUI -modulen.





Hvordan laste ned musikk fra ipod til itunes

Tkinter -oppsett

Vanligvis trenger du ikke installere tkinter separat hvis du har installert en senere versjon av Python, som starter med Python 3. Det er imidlertid ikke sikkert at biblioteket fungerer med gamle Python -versjoner. Dette er et vanlig problem for Mac- og Linux -brukere, ettersom disse operativsystemene vanligvis kommer med eldre versjoner av Python som standard.





Vanligvis å bruke tkinter modul, sørg for at du laster ned og installerer den nyeste kompatible versjonen av Python på din PC fra den offisielle python.org nettsted.

Hvis du er på Mac, kan du alternativt laste ned den nyeste versjonen av ActiveTcl, a tkinter kompilator fra ActiveState .



Slik bruker du Tkinter

Tkinter er avhengig av den innebygde TK klasse. Og det pakker opp alle hendelsene i GUI i en mainloop . Dermed er mainloop innpakning gjør din tkinter kode kjørbar.

Til å komme i gang med tkinter :





from tkinter import Tk
Tk().mainloop()

Hvis du kjører koden ovenfor, blir det tomt tkinter ramme.

Tilpassingsfunksjonene til Tkinter er imidlertid i de innebygde widgets.





For å bruke disse widgetene kan du importere dem fra tkinter ved å bytte ut fra tkinter import Tk med:

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

Du kan også justere vindusstørrelsen med geometri funksjon og angi deretter en tittel med tittel widget av tkinter :

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

Tkinter Label Widget

Tkinter lar deg skrive enkle tekster direkte til GUI ved hjelp av Merkelapp widget:

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

De Nett() metoden er imidlertid et alternativ til pakke() metode. Det holder widgetene dine til GUI, noe som gjør dem synlige.

Du kan også angi en skrift for din Merkelapp tekst:

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

Arbeide med knapp widgets i Tkinter

Knapper er noen av de mest brukte widgets i tkinter . Og du kan legge til disse klikkbare knappene i GUI ved hjelp av de forskjellige innebygde knappene.

Slik legger du til en primær knapp i GUI ved hjelp av Knapp widget:

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

De bg og fg søkeord beskriver henholdsvis bakgrunnsfargen på knappen og fargen på teksten i den.

Du kan også justere dimensjonen på knappen ved å inkludere høyde og bredde parametere:

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

Her er utgangen for det:

Windows xp administratorpassord tilbakestilt uten cd

Og hvis du vil gjøre knappen mer visuelt tiltalende, kan du inkludere en lettelse søkeord og juster deretter kantbredden:

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

Og det ser slik ut:

Erstatte OPPVOKST med FLAT for å se hvordan det kommer frem.

Du kan legge til så mange knapper du vil. Men vær forsiktig så du unngår innholdsoverlapping.

For å unngå overlapping kan du angi rad- og kolonneposisjon for hver knapp:

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

Valgfritt kommando søkeordet legger imidlertid til hendelser i Knapp widget. I hovedsak forankrer den en valgfri funksjon som håndterer visse hendelser når du klikker på en knapp.

Koden nedenfor multipliserer for eksempel verdien av hver knapp med 6 når du klikker på den. Og den er basert på en forhåndsdefinert funksjon:

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

I koden ovenfor, knappetrykk håndterer multiplikasjonshendelsen. De Knapp widgeten peker deretter på hendelsesbehandleren ved å bruke en anonym lambda funksjon.

Og hvis du er bekymret for pads søkeord, det skiller hver knapp på tvers av raden tydelig. Erstatter dette med padx skiller knappene på tvers av kolonnen. Og du kan bruke begge søkeordene samtidig for å skille knappene på tvers av begge aksene slik du ønsker.

Når det er sagt, vil du ikke gjenoppfinne hjulet for hver knapp som du gjorde i den forrige koden. Dette reduserer kjøringstiden, pluss at det gjør koden vanskelig å lese og begrense.

Men du kan bruk en for loop for å unngå denne gjentagelsen.

Så her er en kortere og bedre versjon av koden ovenfor:

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

La oss utforske kraften til til loop for å legge til menyknapper i 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()

Det er også ganske enkelt å legge til kontrollknapper i GUI:

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

Du kan gjerne multiplisere denne kontrollknappen med til loop, som vi gjorde tidligere.

Hvordan lage en rullegardinmeny med Tkinter's Menu Widget

De Meny widget lar deg designe klikkbare rullegardinmenyer i tkinter .

Som nevnt tidligere, tkinter tilbyr mange widgetalternativer. Og du vil bruke noen av dem mens du designer rullegardinmenyen.

Her er noen av de vanlige widgetalternativene du kommer over når du gjør en rullegardinmeny:

  • add_cascade: Den viser en menyetikett og holder den der den hører hjemme.
  • add_separator: Det avgrenser undermenyer og grupperer dem i øvre og nedre undermenyer.
  • add_command: Det er her du gir undermenyen et navn. Til syvende og sist godtar den et kommandoargument hvor du kan spesifisere en hendelsesbehandling.

Her er et rullegardineksempel som bruker disse tre alternativene:

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

Se hvordan det ser ut:

Tkinter Alternativer -meny

An Alternativmeny , i motsetning til Meny rullegardinmenyen, bytter etikett til et valgt alternativ.

Selv om du kan angi en standard etikettverdi for en alternativmeny, har den ingen etikett som standard.

I slekt: Python -prosjektideer som passer for nybegynnere

Slik lager du en alternativmeny i 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()

Bygg en gjenbrukbar skrivebordsapp med Tkinter

Tkinter tilbyr en rekke funksjoner som hjelper deg med å lage interaktive GUI -skrivebordsprogrammer. Selv om den kanskje ikke har mange fleksible forskjønnelsesfunksjoner som noen andre Python GUI -moduler, er det fortsatt et praktisk verktøy som er verdt å utforske. Og mens eksemplene her bare viser noen av de grunnleggende konseptene, tkinter tilbyr mer avanserte funksjoner som du kan prøve.

hvordan bruker du filtrene på snapchat

Når det er sagt, kan du bygge en GUI -skrivebordskalkulator, lage en mini -tekstredigerer eller til og med lage en GUI -skrivebordsprogram for å administrere beholdningene dine. Hvis du vil spre vingene og bli en desktop GUI major, kan du til og med sjekke ut andre GUI -moduler i Python.

Dele Dele kvitring E -post GUI? Hva er et grafisk brukergrensesnitt?

Bruker du en GUI? Det er sannsynlig at du har det fordi du bruker dem hver eneste dag.

Les neste
Relaterte temaer
  • Programmering
  • Python
Om forfatteren Idisou Omisola(94 artikler publisert)

Idowu brenner for alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han liker også å bryte fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.

Mer fra Idowu Omisola

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere