Pradėkite kurti darbalaukio programas „Python“ naudodami „Tkinter“ GUI biblioteką

Pradėkite kurti darbalaukio programas „Python“ naudodami „Tkinter“ GUI biblioteką

„Tkinter“ yra grafinės vartotojo sąsajos (GUI) įrankių rinkinys, kurį turėtumėte išbandyti, jei norite ištirti „Python“ galią kuriant darbalaukio programas.





Čia apžvelgiame „Tkinter“ GUI modulio pagrindus.





„Windows 10 bsod“ sistemos siūlų išimtis nėra tvarkoma

„Tkinter“ sąranka

Paprastai jums nereikia diegti kinkeris atskirai, jei įdiegėte vėlesnę „Python“ versiją, pradedant nuo „Python 3.“ Tačiau biblioteka gali neveikti su senomis „Python“ versijomis. Tai dažna problema „Mac“ ir „Linux“ vartotojams, nes šiose OS pagal numatytuosius nustatymus paprastai būna senesnės „Python“ versijos.





Apskritai, norint naudoti kinkeris modulį, įsitikinkite, kad atsisiųsite ir įdiegsite naujausią suderinamą „Python“ versiją į savo kompiuterį iš pareigūno python.org Interneto svetainė.

Jei naudojate „Mac“, galite atsisiųsti naujausią „ActiveTcl“ versiją, a kinkeris kompiliatorius iš „ActiveState“ .



Kaip naudotis „Tkinter“

„Tkinter“ priklauso nuo jo integruoto TK klasė. Ir tai apibendrina visus GUI įvykius mainloop . Taigi, mainloop įvyniojimas daro jūsų kinkeris vykdomas kodas.

Norėdami pradėti nuo kinkeris :





from tkinter import Tk
Tk().mainloop()

Paleidus aukščiau esantį kodą, atsiranda tuščių kinkeris rėmas.

Tačiau „Tkinter“ tinkinimo funkcijos yra integruotuose valdikliuose.





Jei norite naudoti šiuos valdiklius, galite juos importuoti iš kinkeris pakeisdami iš tkinterio importo Tk su:

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

Taip pat galite reguliuoti lango dydį naudodami geometrija funkciją, tada nurodykite pavadinimą naudodami titulas valdiklis kinkeris :

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

„Tkinter“ etikečių valdiklis

„Tkinter“ leidžia rašyti paprastus tekstus tiesiai į GUI, naudojant Etiketė valdiklis:

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

The tinklelis () Tačiau šis metodas yra alternatyva paketas() metodas. Tai priklijuoja jūsų valdiklius prie GUI, todėl jie matomi.

Taip pat galite nurodyti savo šriftą Etiketė tekstas:

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

Darbas su mygtukų valdikliais „Tkinter“

Mygtukai yra vieni iš dažniausiai naudojamų valdiklių kinkeris . Šiuos paspaudžiamus mygtukus galite pridėti prie savo GUI naudodami įvairius integruotus mygtukų valdiklius.

Štai kaip pridėti pagrindinį mygtuką prie savo GUI naudojant Mygtukas valdiklis:

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

The bg ir fg raktažodžiai apibūdina atitinkamai mygtuko fono spalvą ir jame esančio teksto spalvą.

Taip pat galite koreguoti mygtuko matmenis įtraukdami aukščio ir plotis parametrai:

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

Štai išvestis tam:

kaip perduoti į xbox one

Ir jei norite, kad mygtukas būtų vizualiai patrauklesnis, galite įtraukti palengvėjimas raktinį žodį ir koreguokite jo kraštinės plotį:

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

Ir tai atrodo taip:

Pakeisti KELTAS su BUTAS pamatyti, kaip tai vyksta.

Galite pridėti tiek mygtukų, kiek norite. Tačiau būkite atsargūs, kad turinys nesutaptų.

Norėdami išvengti persidengimo, galite nurodyti kiekvieno mygtuko eilutės ir stulpelio padėtį:

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

Neprivaloma komandą tačiau raktinis žodis prideda įvykių prie Mygtukas valdikliui. Iš esmės jis įtvirtina pasirenkamą funkciją, kuri tvarko tam tikrus įvykius, kai spustelite mygtuką.

Pavyzdžiui, žemiau pateiktas kodas spustelėjus kiekvieno mygtuko vertę padaugina iš 6. Ir tai pagrįsta iš anksto nustatyta funkcija:

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

Aukščiau pateiktame kode mygtuko paspaudimas tvarko daugybos įvykį. The Mygtukas valdiklis tada nurodo tą įvykių tvarkytoją, naudodamas anoniminį lambda funkcija.

O jei nerimaujate dėl trinkelės raktinį žodį, jis aiškiai atskiria kiekvieną eilutės mygtuką. Pakeičiant tai padx atskiria stulpelio mygtukus. Ir jūs galite naudoti abu raktinius žodžius vienu metu, norėdami atskirti mygtukus abiejose ašyse.

Tai reiškia, kad nenorite iš naujo sukurti kiekvieno mygtuko rato, kaip tai darėte ankstesniame kode. Tai sulėtina vykdymo laiką, be to, jūsų kodą sunku perskaityti ir susiaurinti.

Bet tu gali naudoti ciklą kad išvengtumėte šio pasikartojimo.

Taigi čia yra trumpesnė ir geresnė aukščiau pateikto kodo versija:

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

Toliau panagrinėkime jo galią dėl ciklas, skirtas pridėti meniu mygtukus prie 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()

Taip pat gana paprasta pridėti tikrinimo mygtukus prie savo GUI:

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

Nesivaržykite padauginti to patikrinimo mygtuko naudodami dėl kilpa, kaip mes darėme anksčiau.

Kaip sukurti išskleidžiamąjį meniu naudojant „Tkinter“ meniu valdiklį

The Meniu Valdiklis leidžia jums sukurti spustelėjamus išskleidžiamuosius meniu kinkeris .

Kaip minėta anksčiau, kinkeris siūlo daugybę valdiklių parinkčių. Kai kuriuos iš jų naudosite kurdami išskleidžiamąjį meniu.

Štai keletas įprastų valdiklių parinkčių, su kuriomis susidursite atlikdami išskleidžiamąjį meniu:

  • add_cascade: Jis parodo meniu etiketę ir priklijuoja ją ten, kur priklauso.
  • add_separator: Jis išskiria submeniu ir sugrupuoja juos į viršutinį ir apatinį submeniu.
  • add_command: Čia jūs pavadinate savo submeniu. Galų gale jis priima komandų argumentą, kuriame galite nurodyti įvykių tvarkytoją.

Štai išskleidžiamojo meniu pavyzdys, kuriame naudojamos šios trys parinktys:

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

Pažiūrėkite, kaip tai atrodo:

„Tkinter“ parinkčių meniu

An Parinkčių meniu , skirtingai nuo Meniu išskleidžiamajame meniu, perjungia etiketę į pasirinktą parinktį.

Nors parinkčių meniu galite nurodyti numatytąją etiketės vertę, ji pagal numatytuosius nustatymus neturi etiketės.

Susijęs: „Python“ projekto idėjos tinka pradedantiesiems

Štai kaip sukurti parinkčių meniu kinkeris :

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

Sukurkite daugkartinio naudojimo darbalaukio programą naudodami „Tkinter“

„Tkinter“ siūlo daugybę funkcijų, padedančių kurti interaktyvias GUI darbalaukio programas. Nors jis gali neturėti daug lanksčių gražinimo funkcijų, kaip kai kurie kiti „Python“ GUI moduliai, tai vis tiek yra patogus įrankis, kurį verta ištirti. Ir nors čia pateikti pavyzdžiai rodo tik kai kurias pagrindines sąvokas, kinkeris siūlo daugiau pažangių funkcijų, kurias galite išbandyti.

pigiausios internetinės parduotuvės JAV

Be to, galite sukurti GUI darbalaukio skaičiuoklę, sukurti nedidelį teksto redaktorių ar net sukurti GUI darbalaukio programą, kad galėtumėte valdyti savo atsargas. Jei norite išskleisti savo sparnus ir tapti darbastalio GUI pagrindu, galite net patikrinti kitus „Python“ GUI modulius.

Dalintis Dalintis „Tweet“ Paštu GUI? Kas yra grafinė vartotojo sąsaja?

Ar naudojate GUI? Yra tikimybė, kad juos naudojate kiekvieną dieną.

Skaityti toliau
Susijusios temos
  • Programavimas
  • Python
Apie autorių Idisou Omisola(Paskelbti 94 straipsniai)

Idowu aistringai domisi visomis išmaniosiomis technologijomis ir produktyvumu. Laisvalaikiu jis žaidžia koduodamasis ir nuobodžiai persijungia į šachmatų lentą, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią aplink šiuolaikines technologijas skatina jį daugiau rašyti.

Daugiau iš Idowu Omisola

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia