У цій частині навчання wxPython ми постараємося створити найпростіші приклади.
простий приклад
Почати слід з самого простого прикладу. Нашим першим скриптом буде просте відображення невеликого вікна. Ми проаналізуємо кожну лінію нашого найпростішого скрипта.
Перша лінія починається з шебанга (послідовність символів «#» і «!»), Після якого слід шлях до інтерпретатора.
Наступна лінія дозволяє імпортувати базові модулі wxPython. Серед них: ядро, елементи управління, графічний інтерфейс, вікна та інше. Технічно, wx - це простір імен. Всі функції і об'єкти базових модулів починаються із префікса wx.
Наступна лінія нашого коду створює об'єкт докладання.
Кожна програма на wxPython повинна мати один об'єкт докладання.
У цій ділянці ми створюємо об'єкт wx.Frame. Віджет wx.Frame є важливим виджетом контейнера. Трохи пізніше ми розберемо цей віджет детальніше. Сам віджет wx.Frame є батьківським для інших віджетів. У нього немає батьківського віджета. Якщо ми вкажемо «none» для батьківського параметра, то побачимо, що у нашого віджета немає батьківських віджетів. Таким чином wx.Frame є найвищим віджетом в ієрархії.
Після того як ми створили віджет wx.Frame. нам необхідно скористатися методом Show (), чтби відобразити його на екрані.
Остання лінія запускає основний цикл. Він є нескінченним. Основний цикл відловлює і відправляє всі події, які відбуваються під час життя додатки.
Цей приклад був дуже простим. Але, не дивлячись на простоту, з підсумковим вікном можна зробити багато роботи. Зокрема, ми можемо змінити розмір вікна, мінімізувати його або розгорнути. Для цього функціоналу потрібно досить багато коду. Всі ці можливості приховані і доступні за замовчуванням в інструментарії wxPython. Немає необхідності заново винаходити колесо.
Мал. 1. Результат нашого простого коду.
Віджет wx.Frame - один з найбільш важливих в wxPython. Це віджет-контейнер. Це означає, що він може містити в інші віджети. Насправді він може містити будь-яке вікно, яке не є фреймом або діалогом. Віджет wx.Frame складається з заголовка, граней і центральній частині контейнера. Тема і межі є опціональними. Їх можна прибрати, використовуючи різні прапори.
Wx.Frame має наступний конструктор:
Конструктор має сім параметрів. У першого параметра немає значення за замовчуванням. Решта сім параметрів таке значення мають. При цьому перші три параметри - обов'язкові, а останні чотири - опціональні.
wx.DEFAULT_FRAME_STYLE являє собою набір прапорів за замовчуванням. wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX | wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION | wx.CLOSE_BOX | wx.CLIP_CHILDREN. Комбінуючи різні стилі, ми можемо змінювати стилістику віджета wx.Frame. Нижче представлений наочний приклад зміни стилів.
Нашим наміром було відображення вікна без функції згортання. Тому ми не вказали даний прапор в параметрі style.
Мал. 2. Вікно без елемента згортання.
Розмір і позиція
Ми можемо самостійно вказати розмір нашого застосування двома різними способами. В першу чергу у нас є параметр розміру в конструкторі віджета. Також, ми можемо скористатися методом SetSize ().
У цьому прикладі розмір програми становитиме 250х200 пікселів.
У конструкторі ми вказали ширину віджету wx.Frame в 250 пікселів. Висоту віджета - в 200 пікселів.
Аналогічним чином ми можемо позиціонувати наш додаток на екрані. За замовчуванням вікно фіксується в лівому верхньому кутку екрану. Але, в залежності від різних операційних систем і навіть менеджерів вікон, положення може змінюватися. Деякі з менеджерів вікон самостійно вибирають позицію вікон програми.
Деякі з них виконують оптимізацію, в результаті якої вікна не перекриваються. У той же час програміст може сам позиціонувати вікно. У конструкторі віджета wx.Frame нам уже попадався параметр pos. Якщо встановлювати значення, відмінні від зазначених за замовчуванням, ми зможемо керувати позицією розміщення вікна.
Існує кілька методів, за допомогою яких можна зробити це.
Також існують ситуації, коли нам може знадобитися відображення вікна з максимальними розмірами. У цьому випадку вікно розміщується в позиції (0, 0) і займає весь екран. В даному випадку wxPython обчислює внутрішні координати екрану. Для відображення вікна wx.Frame з максимальними розмірами використовується метод Maximize ().
Центрування на екрані
Якщо ми захочемо центрировать наш додаток на екрані, у wxPython знайдеться для цього зручний метод. Використовуючи метод Centre () наше вікно буде розміщено в центрі екрану. Немає необхідності вираховувати ширину і висоту екрану для визначення позиції вікна. Потрібно лише скористатися даним методом.
У цьому прикладі ми центрованої невелике вікно на нашому екрані.
Це метод, який центрує вікно на екрані.
У цьому розділі ми вивчили найбільш прості приклади роботи wxPython.