V tomto tutoriálu se chystáme dát Příklady implementace GUI aplikací v Pythonu, existuje mnoho modulů pro práci s grafickým rozhraním, zde jsme vybrali Tkinter, protože je předinstalován v Pythonu a pomůže nám zjistit, jak tímto způsobem pracujeme, i když na konci uvidíme malý příklad PyQt.
Můžeme zkontrolovat, zda Tkinter modul je správně nainstalován pomocí:
python -m tkinterPoznámkaV Pythonu 2 by to byl první velký t: Tkinter, protože v Pythonu 3 byl přejmenován.
Pokud je správně nainstalován, uvidíme, že se zobrazí okno podobné tomu níže:
Pokud neuvidíme chybu, bude to znamenat, že nemůže najít tento modul:
Chcete -li nainstalovat modul do Pythonu 3 v distribucích Debianu:
sudo apt-get install python3-tkDalší verze najdete v následujícím odkazu. Tutoriál je zaměřen na poskytnutí prvního dojmu o práci s GUI v Pythonu, pokud jste v tomto tématu nováčci, pak vám to pomůže, pokud hledáte pokročilá témata, není to ten správný návod.
PoznámkaZde budeme pracovat s Pythonem 3, knihovnu importujeme následovně:
importovat tkinterV Pythonu 2 jej však musíte importovat následovně, již jsme mluvili o jeho přejmenování:
importovat Tkinter
Začneme příklad tutoriálu příkladem, začneme tím nejjednodušším a na konci to zkomplikujeme.
Příklad 1
Vytvoříme pro to jednoduché okno, do kterého napíšeme následující kód:
importovat okno tkinter = tkinter.Tk () okno = tkinter.mainloop ()Prvním řádkem importujeme potřebný modul, dalším se vytvoří hlavní okno a pokud odstraníme poslední instrukci, okno se při spuštění kódu nezobrazí. Výstup příkladu:
Tento příklad byl velmi dlouhý, 3 řádky … Přejdeme k dalšímu.
Příklad 2
V tomto příkladu, který není o moc delší než ten předchozí, vytvoříme okno jako v příkladu 1, ale trochu ho nakonfigurujeme, změníme barvu, velikost a název.
importovat tkinter jako tk window = tk.Tk () window.config (bg = "blue") window.geometry ("400x300") window.title ("Example2") window.mainloop ()První řádek stále importuje modul tkinter, ale dáme mu alias, abychom mohli v kódu použít kratší slovo. Okno vytvoříme jako v předchozím příkladu. A další 3 řádky nakonfigurují barvu, velikost a název v uvedeném pořadí. Poslední řádek, který už známe. Výstup příkladu je následující:
Zatím bylo vše velmi snadné, pokračujme dalšími příklady.
Příklad 3
Nyní se chystáme vytvořit tlačítko uvnitř hlavního okna, které nám také nebude příliš komplikovat, podívejme se na kód:
importovat tkinter jako tk okno = tk.Tk () window.geometry ("200x150") tlačítko = tk.Button (okno, text = "Testování") button.grid (řádek = 1, sloupec = 1) window.mainloop ()Jediné řádky, které vyžadují vysvětlení, jsou:
button = tk.Button (okno, text = "Testování") button.grid (řádek = 1, sloupec = 1)První vytvoří tlačítko s názvem Testování (knoflík) a přiřadíme jej okno, což je proměnná našeho hlavního okna. Druhý umístí tlačítko do řádku a sloupce 1. Provedení nám ukáže následující:
Tlačítko se jednoduše zobrazí, nefunguje, protože neslouží událostem, uděláme to v následujícím příkladu.
Příklad 4
Nyní se zúčastníme akce k otevření druhého okna, které nebude hlavní, podívejme se na kód:
importovat tkinter jako tk def open (): window2 = tk.Toplevel (okno) window = tk.Tk () window.geometry ("200x150") tlačítko = tk.Button (okno, text = "Otevřít", příkaz = otevřít) button.grid (řádek = 1, sloupec = 1) window.mainloop ()Uvidíme nové řádky, otevřená funkce bude mít následující instrukci, která vytvoří „podřízené“ okno hlavního.
window2 = tk.Toplevel (okno)A tlačítko má malou změnu, všimněte si příkaz, je provést funkci, v tomto případě ji zavolat otevřeno:
tlačítko = tk.Button (okno, text = "Otevřít", příkaz = otevřít)Pojďme na příklad se třídou.
Příklad 5
Toto je poslední příklad tkinteru a bude to nejdelší, vytvoříme třídu, která bude dělat něco jiného. Co uděláme, je malé okno, jehož velikost nelze změnit, bude mít textový štítek a tlačítko, při každém stisknutí tlačítka se číslo zvýší. Přejdeme ke kódu:
importovat tkinter jako třídu tk Application (): counter = 1 def __init __ (self): self.window = tk.Tk () self.window.geometry ("300x60") self.window.title ("Example 5") self . window.resizable (width = False, height = False) self.createButton () self.createLabel () self.window.mainloop () def createButton (self): self.button = tk.Button (self.window, text = "Zvětšit", příkaz = self.increase) self.button.pack () def createLabel (self): self.tag = tk.Label (self.window, text = "0", fg = "blue") self.tag . pack (pady = 10) def increase (self): self.tag ["text"] = self.counter self.counter + = 1 app = Application ()Ve funkci __init__ kromě volání funkcí vytvoříme okno a nakonfigurujeme ho createButton Y createLabel abychom těmto elementům uvěřili. Pokud jsme viděli předchozí příklady, tento by neměl generovat komplikace nebo pochybnosti. Při spuštění programu máme okno s číslem 0:
Pokud klikneme na tlačítko, číslo se zvýší, například po 25krát kliknutí máme následující:
V tomto tutoriálu jsme viděli základy modulu tkinter, budete moci vytvářet mnohem více věcí, pokud vás zajímá prohloubení zde, máte odkaz na oficiální stránku Pythonu, kde hovoří o tkinteru.
V Pythonu máte další knihovny, pomocí kterých můžete programovat grafická rozhraní, jak bylo řečeno na začátku, některá z nich jsou:
- PyGTK
- wxPython
- PyQT
Abyste mohli trochu porovnat tkinter s jiným modulem, uvedeme příklad PyQt.
Příklad s PyQT
Chcete -li spustit tento příklad budete muset nainstalovat knihovnu, můžete navštívit odkaz, který jsme vložili výše. Vytvoříme okno o velikosti 275x200 a s názvem Příklad PyQt4. Objeví se také na pozici 300x300
import sys from PyQt4 import QtGui application = QtGui.QApplication (sys.argv) window = QtGui.QWidget () window.resize (275, 200) window.move (300, 300) window.setWindowTitle ('PyQt4 Example') okno. show () sys.exit (application.exec_ ())Pokud spustíme kód, získáme následující výstup:
Nic složitého, jak to bylo pozorováno v celém tutoriálu, mohli bychom pokračovat v uvádění příkladů, protože je toho hodně na dotek, ale s úvodem vás to již připraví na procvičování vytváření vlastních příkladů, přidávání dalších prvků, jako jsou seznamy, textová pole, kam psát atd.
Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod