Začněte vytvářet aplikace pro stolní počítače v Pythonu pomocí knihovny GUI Tkinter

Začněte vytvářet aplikace pro stolní počítače v Pythonu pomocí knihovny GUI Tkinter

Tkinter je sada nástrojů pro grafické uživatelské rozhraní (GUI), kterou byste měli vyzkoušet, pokud chcete prozkoumat sílu Pythonu při vytváření desktopových aplikací.





Zde se podíváme na základy modulu GUI Tkinter.





rozdíl mezi ubuntu desktopem a serverem

Nastavení Tkinter

Obvykle není třeba instalovat tkinter samostatně, pokud jste nainstalovali novější verzi Pythonu, počínaje Pythonem 3. Knihovna však nemusí fungovat se starými verzemi Pythonu. Toto je běžný problém pro uživatele počítačů Mac a Linux, protože tyto operační systémy se obvykle standardně dodávají se staršími verzemi Pythonu.





Obecně platí, že použít tkinter modulu, ujistěte se, že si do počítače stáhnete a nainstalujete nejnovější kompatibilní verzi Pythonu z oficiálního serveru python.org webová stránka.

Pokud používáte Mac, můžete si alternativně stáhnout nejnovější verzi ActiveTcl, a tkinter překladač z ActiveState .



Jak používat Tkinter

Tkinter závisí na svém vestavěném TK třída. A to zabalí všechny události v GUI do a hlavní smyčka . Tím, hlavní smyčka obal dělá váš tkinter spustitelný kód.

Pro začátek tkinter :





from tkinter import Tk
Tk().mainloop()

Spuštění výše uvedeného kódu roztočí prázdné místo tkinter rám.

Možnosti přizpůsobení Tkinteru jsou však v jeho vestavěných widgetech.





Chcete -li tyto widgety použít, můžete je importovat z tkinter výměnou z tkinter import Tk s:

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

Velikost okna můžete také upravit pomocí geometrie funkci a poté zadejte název pomocí titul widget z tkinter :

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

Widget Label Tkinter

Tkinter vám umožňuje psát prosté texty přímo do GUI pomocí Označení widget:

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

The mřížka() metoda je však alternativou k balíček() metoda. Přilepí vaše widgety k GUI, čímž je zviditelní.

Můžete také určit písmo pro své Označení text:

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

Práce s widgety tlačítek v Tkinteru

Tlačítka jsou jedny z nejpoužívanějších widgetů v tkinter . A tato klikací tlačítka můžete přidat do svého GUI pomocí různých vestavěných widgetů pro tlačítka.

Zde je návod, jak přidat primární tlačítko do GUI pomocí Knoflík widget:

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

The bg a fg klíčová slova popisují barvu pozadí tlačítka a barvu textu v něm příslušně.

Rozměr tlačítka můžete také upravit zahrnutím výška a šířka parametry:

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

Zde je výstup:

jak otáčet videa v programu Windows Media Player

A pokud chcete, aby bylo tlačítko vizuálně přitažlivější, můžete zahrnout znak úleva klíčové slovo a poté upravte jeho šířku ohraničení:

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

A vypadá to takto:

Nahradit ZVÝŠENO s BYT abych viděl, jak to probíhá.

Můžete přidat libovolný počet tlačítek. Dávejte si však pozor, abyste se vyhnuli překrývání obsahu.

Abyste se vyhnuli překrývání, můžete pro každé tlačítko zadat pozici řádku a sloupce:

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

Volitelné příkaz klíčové slovo však přidává události do souboru Knoflík widget. V podstatě ukotvuje volitelnou funkci, která zpracovává určité události po kliknutí na tlačítko.

Níže uvedený kód například znásobí hodnotu každého tlačítka o 6, když na něj kliknete. A je založen na předdefinované funkci:

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

Ve výše uvedeném kódu stisknutí tlačítka zpracovává událost násobení. The Knoflík widget pak ukazuje na tento obslužný program událostí pomocí anonymního lambda funkce.

A pokud vás to znepokojuje Podložky klíčové slovo, zřetelně odděluje každé tlačítko v řádku. Nahradit to padx odděluje tlačítka přes sloupec. A můžete použít obě klíčová slova současně k oddělení tlačítek v obou osách, jak si přejete.

To znamená, že nechcete znovu objevovat kolečko pro každé tlačítko, jako jste to udělali v předchozím kódu. To zpomaluje dobu provádění a navíc ztěžuje čtení a zúžení kódu.

Ale můžete použijte smyčku for aby se zabránilo tomuto opakování.

Zde je tedy kratší a lepší verze výše uvedeného kódu:

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

Pojďme dále prozkoumat sílu pro smyčka pro přidání tlačítek nabídky do vašeho 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()

Přidání kontrolních tlačítek do GUI je také docela snadné:

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

Toto kontrolní tlačítko znásobte pomocí pro smyčku, jako jsme to udělali dříve.

Jak vytvořit rozevírací nabídku pomocí widgetu nabídky Tkinter

The Jídelní lístek widget vám umožňuje navrhnout rozevírací nabídky, na které lze kliknout tkinter .

Jak již bylo uvedeno dříve, tkinter nabízí mnoho možností widgetu. A některé z nich použijete při navrhování rozevírací nabídky.

Zde jsou některé z běžných možností widgetů, na které narazíte při vytváření rozevíracího seznamu:

  • add_cascade: Zobrazí štítek nabídky a umístí jej tam, kam patří.
  • add_separator: Vymezuje podnabídky a seskupuje je do horních a dolních podnabídek.
  • add_command: Zde dáte název své podnabídce. Nakonec přijímá argument příkazu, kde můžete zadat obslužnou rutinu události.

Zde je příklad rozevíracího seznamu, který používá tyto tři možnosti:

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

Podívejte se, jak to vypadá:

Nabídka možností Tkinter

An Volitelné menu , na rozdíl od Jídelní lístek rozevíracího seznamu, přepne jeho štítek na vybranou možnost.

Ačkoli můžete zadat výchozí hodnotu štítku pro nabídku možností, ve výchozím nastavení nemá žádný štítek.

Příbuzný: Nápady projektu Python vhodné pro začátečníky

Zde je návod, jak vytvořit nabídku možností v 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()

Vytvořte opakovaně použitelnou desktopovou aplikaci s Tkinterem

Tkinter nabízí řadu funkcí, které vám pomohou vytvářet interaktivní desktopové aplikace s grafickým rozhraním. Ačkoli to nemusí mít mnoho flexibilních zkrášlovacích funkcí jako některé jiné moduly Python GUI, stále je to šikovný nástroj, který stojí za prozkoumání. A i když zde uvedené příklady ukazují pouze některé základní koncepty, tkinter nabízí pokročilejší funkce, které můžete vyzkoušet.

mohu sledovat místní kanály v roce

To znamená, že můžete vytvořit stolní kalkulačku GUI, vytvořit mini textový editor nebo dokonce vytvořit desktopovou aplikaci GUI pro správu vašich zásob. Pokud chcete roztáhnout křídla a stát se hlavním grafickým uživatelským rozhraním pro stolní počítače, můžete se dokonce podívat na další moduly grafického uživatelského rozhraní v Pythonu.

Podíl Podíl tweet E-mailem GUI? Co je grafické uživatelské rozhraní?

Používáte GUI? Je pravděpodobné, že je máte, protože je používáte každý den.

Číst dále
Související témata
  • Programování
  • Krajta
O autorovi Idisou Omisola(94 publikovaných článků)

Idowu je zapálený pro cokoli chytrého a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje psát více.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru