Python - uživatelská rozhraní, část 2

Obsah
Jak jsme mohli vidět v první části tutoriálu, vytvoření okna je celkem jednoduché, v této druhé části půjdeme o něco dále tím, že půjdeme hlouběji do toho, co jsme nechali jako základ, a rozšířením kódu vytvoříme něco pomocí vyšší stupeň složitosti.
Přidejte tlačítko
Jakmile okno opustíme, musí v něm být více prvků a jedním z nejzákladnějších, ale velmi důležitých je tlačítko, pro přidání přidáme btn = wx. Tlačítko (výhra) v našem kódu se podívejme:
 import wx app = wx.App () win = wx.Frame (None) btn = wx.Button (win) win.Show () app.MainLoop () 

Jak vidíme, je to prakticky stejný kód jako výše, nicméně zahrnujeme instrukci, která přidává tlačítko, na obrázku vidíme výsledek:

Výsledek není příliš estetický, protože tlačítko zabírá celé okno, ale neměli bychom se nechat odradit, v další části uvidíme, jak to ovládat, aby to generovalo příjemnější výsledek pro oko.
Štítky a pozice
V předchozí části jsme si uvědomili, že ačkoliv je velmi snadné přidat další prvky, musíme je umět distribuovat tak, aby na grafické úrovni odpovídalo tomu, čeho chceme dosáhnout, za tímto účelem můžeme vytvořit popisky, velikosti a pozice pro prvky v okně.
Uvidíme následující kód s odpovídajícím výsledkem, abychom mohli proces lépe analyzovat a porozumět mu.
 import wx app = wx.App () win = wx.Frame (None,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ( ) app.MainLoop () 

Jak vidíme, umístíme hodnotu do názvu okna, jako argument pro konstruktor při vytváření instance, poté vytvoříme dvě tlačítka a každé přidáme štítek nebo štítek, můžeme vidět výsledek, i když nemusí být to, co očekáváme:

Skutečně vidíme, že něco nevypadá správně a že jedno z tlačítek není viditelné, je to proto, že neurčujeme jeho polohu, proto je skryto pod druhým tlačítkem.
Opravíme to následujícím kódem:
 import wx app = wx.App () win = wx.Frame (None ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), size = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), velikost = (210, 25)) obsah = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) aplikace .MainLoop () 

S tímto kódem, kromě opravy detailu pomocí pozic tlačítek, využíváme výhod a přidáváme některé textové ovládací prvky, podívejme se na následujícím obrázku, jak by vše vypadalo.

Věci jsou již v lepší kondici, nicméně nyní se ptáme, co s tímto oknem uděláme, protože v další části se chystáme definovat některé funkce.
Zpracování událostí
Pomocí tohoto typu přístupu k vytváření našich programů se také trochu změní vize toho, co děláme, v tomto případě a akce, které program provádí, budeme volat události, tyto události jsou spouštěny akcemi uživatele, jako je kliknutí na tlačítko, trochu jsme tedy upravili kód, aby zahrnoval tyto události:
loadButton.Bind (wx.EVT_BUTTON, load)

Tato čára z nás dělá sjednocení mezi zatěžovací funkcí a prvkem, v tomto případě tlačítkem, takže již víme, že nejprve musíme definovat funkci a poté ji přiřadit k události spojené s prvkem.
Podívejme se na konečný kód:
 import wx def load (event): file = open (filename.GetValue ()) contents.SetValue (file.read ()) file.close () def save (event): file = open (filename.GetValue (), ' w ') file.write (contents.GetValue ()) file.close () app = wx.App () win = wx.Frame (None ,, size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Save') saveButton.Bind (wx.EVT_BUTTON, save) název souboru = wx.TextCtrl (bkg) obsah = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (název souboru, podíl = 1, příznak = wx.EXPAND) hbox.Add (loadButton, proporce = 0, flag = wx.LEFT, border = 5) hbox.Add (saveButton, proporce = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proporce = 0, příznak = wx.EXPAND | wx.ALL, border = 5) vbox.Add (obsah, proporce = 1, vlajka = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, ohraničení = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Tento program dělá úpravu textových souborů poměrně základním způsobem, ale přiměl nás používat mnoho funkcí a aplikací.
Tímto ukončíme tutoriál, protože víme, jak používat a sada nástrojů uživatelské rozhraní, doporučujeme vám prozkoumat různé existující sady nástrojů, včetně těch, které jsou exkluzivní pro konkrétní operační systém, a pamatujte na to, že každý nástroj nám bude příležitostně užitečný.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

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave