Python - Benutzeroberflächen, Teil 2

Inhaltsverzeichnis
Wie wir im ersten Teil des Tutorials sehen konnten, ist das Erstellen eines Fensters recht einfach. In diesem zweiten Teil gehen wir etwas weiter, indem wir tiefer in das einsteigen, was wir als Basis übrig haben und den Code erweitern, um etwas mit a . zu erstellen höheren Komplexitätsgrad.
Schaltfläche hinzufügen
Sobald wir das Fenster verlassen, müssen mehr Elemente darin enthalten sein und eines der grundlegendsten, aber sehr wichtigen ist die Schaltfläche, um es hinzuzufügen, werden wir hinzufügen btn = wx.Button (gewinnen) In unserem Code sehen wir:
 import wx app = wx.App () win = wx.Frame (None) btn = wx.Button (win) win.Show () app.MainLoop () 

Wie wir sehen, handelt es sich praktisch um den gleichen Code wie oben, jedoch fügen wir die Anweisung hinzu, die die Schaltfläche hinzufügt, im Bild sehen wir das Ergebnis:

Das Ergebnis ist nicht sehr ästhetisch, da die Schaltfläche das gesamte Fenster einnimmt, aber wir sollten uns nicht entmutigen lassen. Im nächsten Abschnitt werden wir sehen, wie Sie dies steuern können, um ein ansprechenderes Ergebnis für das Auge zu erzielen.
Beschriftungen und Positionen
Im vorherigen Abschnitt haben wir festgestellt, dass es zwar sehr einfach ist, weitere Elemente hinzuzufügen, wir jedoch in der Lage sein müssen, sie so zu verteilen, dass sie auf grafischer Ebene mit dem übereinstimmen, was wir erreichen möchten. Dafür können wir Labels, Größen und Positionen festlegen für die Elemente innerhalb des Fensters.
Wir werden den folgenden Code mit seinem entsprechenden Ergebnis sehen, damit wir den Prozess besser analysieren und verstehen können.
 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 () 

Wie wir sehen, setzen wir einen Wert in den Titel des Fensters, als Argument für den Konstruktor beim Instanziieren, dann erstellen wir zwei Schaltflächen und fügen jeder ein Label oder Label hinzu, wir können das Ergebnis sehen, obwohl es möglicherweise nicht Seien Sie, was wir erwarten:

In der Tat können wir sehen, dass etwas nicht richtig aussieht und dass eine der Schaltflächen nicht sichtbar ist, da wir ihre Position nicht angeben und sie daher unter der anderen Schaltfläche verborgen ist.
Wir werden dies mit dem folgenden Code korrigieren:
 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), Größe = (210, 25)) Inhalt = wx.TextCtrl (win, pos = (5, 35), Größe = (390, 260), Stil = wx.TE_MULTILINE | wx.HSCROLL) app .Hauptschleife () 

Mit diesem Code, abgesehen von der Korrektur der Details mit den Positionen der Schaltflächen, nutzen wir einige Textsteuerelemente und fügen sie hinzu. Sehen wir uns im folgenden Bild an, wie alles aussehen würde.

Die Dinge sind bereits in einem besseren Zustand, aber jetzt fragen wir uns, was wir mit diesem Fenster machen, denn im nächsten Abschnitt werden wir einige Funktionalitäten definieren.
Handhabung des Events
Wenn wir diese Art von Ansatz zur Erstellung unserer Programme verwenden, ändert sich auch die Vision von dem, was wir tun, ein wenig, in diesem Fall und die Aktionen, die das Programm ausführt, nennen wir Ereignisse, diese Ereignisse werden durch Benutzeraktionen wie das Klicken auf eine Schaltfläche ausgelöst, Daher haben wir den Code ein wenig modifiziert, um diese Ereignisse einzuschließen:
loadButton.Bind (wx.EVT_BUTTON, laden)

Diese Zeile macht uns zu einer Vereinigung zwischen der Ladefunktion und dem Element, in diesem Fall einer Schaltfläche, also wissen wir bereits, dass wir zuerst eine Funktion definieren und sie dann in einem mit einem Element verknüpften Ereignis zuweisen müssen.
Sehen wir uns den endgültigen Code an:
 import wx def laden (event): file = open (filename.GetValue ()) content.SetValue (file.read ()) file.close () def speichern (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) filename = wx.TextCtrl (bkg) Inhalt = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (Dateiname, Anteil = 1, Flag = wx.EXPAND) hbox.Add (loadButton, Anteil = 0, Flag = wx.LEFT, border = 5) hbox.Add (saveButton, Anteil = 0, Flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, Anteil = 0, Flag = wx.EXPAND | wx.ALL, border = 5) vbox.Add (Inhalt, Anteil = 1, Flag = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, border = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop () 

Dieses Programm bearbeitet Textdateien auf ziemlich einfache Weise, aber es hat uns dazu gebracht, viele Funktionen und Anwendungen zu verwenden.
Damit beenden wir das Tutorial und wissen, wie man a . verwendet Werkzeugkasten Benutzeroberfläche empfehlen wir Ihnen, die verschiedenen vorhandenen Toolkits zu untersuchen, einschließlich derjenigen, die ausschließlich für ein bestimmtes Betriebssystem gelten, und denken Sie daran, dass jedes Tool für uns gelegentlich nützlich sein wird.Hat dir dieses Tutorial gefallen und geholfen?Sie können den Autor belohnen, indem Sie diesen Knopf drücken, um ihm einen positiven Punkt zu geben
wave wave wave wave wave