Začínáme s grafickými uživatelskými rozhraními v Pythonu

Obsah

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 tkinter
Pozná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-tk
Další 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 tkinter
V 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
wave wave wave wave wave