Fügen Sie eine Schaltfläche hinzu
Sobald wir das Fenster verlassen, muss es mehr Elemente in diesem geben und eines der grundlegendsten, aber sehr wichtigen ist die Schaltfläche. Um es hinzuzufügen, fügen wir btn = wx.Button (win) in unseren Code ein.
Import wx app = wx.App () win = wx.Frame (keine) btn = wx.Button (win) win.Show () app.MainLoop ()
Wie wir sehen, ist es praktisch derselbe vorherige Code, wir fügen jedoch die Anweisung hinzu, die die Schaltfläche hinzufügt. Im Bild können wir das Ergebnis sehen:
Das Ergebnis ist nicht sehr ästhetisch, da der Knopf das gesamte Fenster einnimmt, aber wir sollten uns nicht entmutigen lassen. Im nächsten Abschnitt werden wir sehen, wie dies kontrolliert werden kann, um ein für das Auge ansprechenderes Ergebnis zu erzielen.
Bezeichnungen und Positionen
Im vorigen Abschnitt haben wir festgestellt, dass es zwar sehr einfach ist, weitere Elemente hinzuzufügen, diese aber verteilen müssen, damit sie auf grafischer Ebene dem entsprechen, was wir erreichen möchten. Dazu können wir Beschriftungen, Größen und Positionen für die Elemente innerhalb des Fensters festlegen.
Wir werden den folgenden Code mit dem entsprechenden Ergebnis sehen, damit wir den Prozess besser analysieren und verstehen können.
Import wx app = wx.App () win = wx.Frame (Keine, title = "Einfacher Editor") loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show () app.MainLoop ()
Wenn wir beobachten, dass wir dem Titel des Fensters einen Wert zuweisen, als Argument für den Konstruktor im Moment der Instanziierung, dann erstellen wir zwei Schaltflächen und fügen jedem eine Beschriftung oder eine Beschriftung hinzu, um das Ergebnis zu sehen, obwohl es möglicherweise nicht unseren Erwartungen entspricht :
In der Tat können wir sehen, dass etwas nicht gut aussieht und dass eine der Schaltflächen nicht sichtbar ist. Dies liegt daran, dass wir ihre Position nicht angeben und sie daher unter der anderen Schaltfläche ausgeblendet ist.
Wir werden dies mit dem folgenden Code korrigieren:
Import wx app = wx.App () win = wx.Frame (Keine, title = "Einfacher Editor", 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), size = (210, 25)) contents = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) app.MainLoop ()
Mit diesem Code können wir nicht nur die Details mit den Positionen der Schaltflächen korrigieren, sondern auch einige Textsteuerelemente hinzufügen. Sehen wir uns im folgenden Bild an, wie alles aussehen würde.
Jetzt haben die Dinge eine bessere Form, aber jetzt fragen wir uns, was wir mit diesem Fenster machen werden, weil wir im nächsten Abschnitt einige Funktionalitäten definieren werden.
Event Management
Wenn wir diese Art der Erstellung unserer Programme verwenden, ändern wir auch ein wenig die Sicht auf das, was wir in diesem Fall tun, und die Aktionen, die das Programm die Ereignisse aufruft. Diese Ereignisse werden durch Benutzeraktionen wie Klicken auf ausgelöst eine Schaltfläche, daher haben wir den Code ein wenig geändert, um die folgenden Ereignisse einzuschließen:
loadButton.Bind (wx.EVT_BUTTON, load)
Diese Linie verbindet die Ladefunktion und das Element, in diesem Fall eine Schaltfläche, sodass wir bereits wissen, 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 Load (Ereignis): 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 (Keine, title = "Einfacher Editor", size = (410, 335)) bkg = wx.Panel (win) loadButton = wx.Button (bkg, label = 'Open') loadButton.Bind (wx.EVT_BUTTON, load) saveButton = wx.Button (bkg, label = 'Speichern') saveButton.Bind (wx.EVT_BUTTON, speichern) Dateiname = wx.TextCtrl (bkg) contents = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (Dateiname, Proportion = 1, Flag = wx.EXPAND) hbox.Add (loadButton, proportion = 0, flag = wx.LEFT, border = 5) hbox.Add (saveButton, proportion = 0, flag = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, proportion = 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 sehr einfache Weise, hat uns jedoch dazu veranlasst, viele Funktionen und Anwendungen zu verwenden.
Nachdem wir das Lernprogramm fertiggestellt haben und wissen, wie ein Toolkit für die Benutzeroberfläche verwendet wird, möchten wir Sie dazu ermutigen, die verschiedenen vorhandenen Toolkits zu untersuchen, einschließlich derjenigen, die für ein bestimmtes Betriebssystem spezifisch sind.