Съдържание
Както видяхме в първата част на урока, създаването на прозорец е доста просто, във втората част ще отидем малко по -далеч, като задълбочим това, което оставихме като основа и разширихме кода, за да създадем нещо с по -висока степен на сложност.Добавете бутон
След като напуснем прозореца, в него трябва да има повече елементи и един от най -основните, но много важни е бутонът, за да го добавим, ще добавим btn = wx.Button (победа) в нашия код, нека видим:
импортиране на wx app = wx.App () win = wx.Frame (Няма) btn = wx.Button (win) win.Show () app.MainLoop ()
Както можем да видим, това е практически същия код, както по -горе, но ние включваме инструкцията, която добавя бутона, в изображението можем да видим резултата:
Резултатът не е много естетичен, тъй като бутонът заема целия прозорец, но не бива да се обезсърчаваме, в следващия раздел ще видим как да контролираме това, за да генерираме по -приятен за окото резултат.
Етикети и позиции
В предишния раздел разбрахме, че въпреки че е много лесно да добавяме повече елементи, трябва да можем да ги разпределяме, така че на графично ниво да е съгласувано с това, което искаме да постигнем, за това можем да установим етикети, размери и позиции за елементите в прозореца.
Ще видим следния код със съответния му резултат, за да можем да анализираме и разберем процеса по по -добър начин.
import wx app = wx.App () win = wx.Frame (Няма,) loadButton = wx.Button (win, label = 'Open') saveButton = wx.Button (win, label = 'Save') win.Show ) app.MainLoop ()
Както можем да видим, поставяме стойност в заглавието на прозореца, като аргумент за конструктора при създаване на инстанция, след това създаваме два бутона и всеки от тях добавяме етикет или етикет, можем да видим резултата, въпреки че може да не бъде това, което очакваме:
Всъщност можем да видим, че нещо не изглежда както трябва и че един от бутоните не се вижда, това е така, защото ние не посочваме неговата позиция, следователно той е скрит под другия бутон.
Ще коригираме това със следния код:
import wx app = wx.App () win = wx.Frame (Няма ,, size = (410, 335)) win.Show () loadButton = wx.Button (win, label = 'Open', pos = (225, 5), размер = (80, 25)) saveButton = wx.Button (win, label = 'Save', pos = (315, 5), size = (80, 25)) filename = wx.TextCtrl (win, pos = (5, 5), размер = (210, 25)) съдържание = wx.TextCtrl (win, pos = (5, 35), size = (390, 260), style = wx.TE_MULTILINE | wx.HSCROLL) приложение .MainLoop ()
С този код, освен да коригираме детайлите с позициите на бутоните, ние се възползваме и добавяме някои текстови контроли, нека видим на следващото изображение как би изглеждало всичко.
Нещата вече са в по -добра форма, но сега се питаме какво ще правим с този прозорец, защото в следващия раздел ще дефинираме някои функционалности.
Обработка на събития
Използвайки този тип подход за създаване на нашите програми, визията за това, което правим, също се променя малко, в този случай и действията, които програмата изпълнява, ще наричаме събития, тези събития се задействат от действия на потребителя, като например щракване върху бутон, затова сме променили кода малко, за да включим тези събития:
loadButton.Bind (wx.EVT_BUTTON, зареждане)
Този ред ни прави съюз между функцията за зареждане и елемента, в този случай бутон, така че вече знаем, че първо трябва да дефинираме функция и след това да я присвоим в събитие, свързано с елемент.
Нека видим крайния код:
импортиране на wx def зареждане (събитие): 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 (Няма ,, размер = (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) content = wx.TextCtrl (bkg, style = wx.TE_MULTILINE | wx.HSCROLL) hbox = wx.BoxSizer () hbox.Add (име на файл, пропорция = 1, флаг = wx.EXPAND) hbox.Add (loadButton, пропорция = 0, флаг = wx.LEFT, border = 5) hbox.Add (saveButton, пропорция = 0, флаг = wx.LEFT, border = 5) vbox = wx.BoxSizer (wx.VERTICAL) vbox.Add (hbox, пропорция = 0, флаг = wx.EXPAND | wx.ALL, border = 5) vbox.Add (съдържание, пропорция = 1, флаг = wx.EXPAND | wx.LEFT | wx.BOTTOM | wx.RIGHT, граница = 5) bkg.SetSizer (vbox) win.Show () app.MainLoop ()
Това, което прави тази програма, е да редактира текстови файлове по доста основен начин, но ни накара да използваме много функции и приложения.
С това завършваме урока, знаейки как да използваме a инструментариум потребителски интерфейс, препоръчваме ви да проучите различните съществуващи инструментариуми, включително тези, които са изключителни за определена операционна система, като помните, че всеки инструмент ще ни бъде полезен понякога.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка