Создание бокса «О приложении» — wxPython #13

автор

Когда я создаю приложение, я обычно стремлюсь включить в него окно «О приложении», чтобы рассказать пользователям больше о приложении, о себе, передать приветы всем, кто помогал в его создании. Круто, что в wxPython существует стандартный виджет AboutBox. Мне кажется, что он выглядит слегка странно, так что я создал свой собственный бокс «О приложении», используя виджет HtmlWindow. Как бы то ни было, в данной статье я опишу оба варианта.

Сначала нам нужно создать простое приложение, которое позволит нам открывать диалоговые окна через кнопку или параметр-меню. В нём будут 3 кнопки: одна, чтобы открыть wx.AboutBox, одна, чтобы отобразить html-версию моего бокса «О приложении», и кнопка «Закрыть».

Используя wx.AboutBox

Создание AboutBox довольно прямолинейный процесс. Давайте взглянем на сниппет кода:

Сначала, вы подтверждаете инстанцию для wx.AboutDlgInfo. Это даёт вам возможность устанавливать различные фрагменты информации в вашем боксе «О приложении», такие как название приложения, версия, зарегистрированные права и так далее. Когда вы заполните все эти формы, вы создаёте wx.AboutBox и наполняете его этой информацией. Учтите, что ненужно выполнять никаких действий для непосредственного отображения, всё произойдёт автоматически.

Когда вы закончите, вы должны будете увидеть что-то вроде приложения ниже.

Теперь мы можем двигаться дальше и узнать, как создать данное диалоговое окно с помощью html.

Используя HtmlWindow для бокса «О приложении»

Создание Html-версии является немного более сложным процессом. Я предпочитаю разделять код на два класса. Два лучших виджета, которые я лично очень рекомендую вам для использования в качестве основы для вашего бокса «О приложении» — это wx.Frame или wx.Dialog. В данном примере я буду использовать виджет wx.Frame. Второй класс нужен лишь для того, чтобы считывать клики по ссылкам, если вы вдруг решите поместить их в бокс «О приложении». Давайте взглянем на код:

Есть одна значительная причина, по которой я использую именно этот код: он позволяет мне использовать различные шрифты, Html-таблицы, вставлять фото и много другого, причём делать это намного проще, чем другие аналоги. К тому же, он полностью кросс-платформенный. Однако, есть и значительный недостаток – данный виджет не может использовать продвинутый Html, такой как css или javascript. В любом случае, когда вы закончите, у вас должно появится что-то вроде этого:

Вот полный исходный код моей демо-программы, который я использовал для активации моих двух боксов «О приложении»:

Главное, на что здесь нужно обратить внимание, это то как я настраиваю полосу меню и связанные с меню события. Если вы раньше не делали подобного, то данный материал может быть для вас невероятно полезным. Я планирую более детально рассказать об этом процессе в своих будущих статьях, а пока что вам достаточно знать, нужно создать объект wx.MenuBar и несколько объектов wx.Menu. Объекты wx.Menu используются для заголовков пунктов меню (например, «Файл», «О программе» и так далее).

Все объекты wx.Menu присоединены к полосе меню. Наконец, вы выполняете команду elf.SetMenuBar(), чтобы прикрепить вашу полосу меню к wx.Frame вашего приложения.

Обновление кода для wxPython Phoenix

Если вы используете wxPython Phoenix, вам придётся немного изменить код. Первое, что вам нужно будет сделать, добавить следующий импорт в начало файла: import wx.adv. Как вы видите, в wxPython Phoenix, wx.AboutBox называется wx.adv.AboutBox, а диалог wx.AboutDialogInfo называется wx.adv.AboutDialogInfo. Это значит, что вам нужно обновить метод onAboutDlg для Phoenix с помощью следующего кода:

Теперь код должен работать в Python 3 и wxPython Phoenix!

Итоги

Теперь вы знаете как создать ваш собственный бокс «О приложении». Подобные виджеты очень полезны для общения с конечным пользователем, предоставляя ему информацию о версии, которую он использует в данный момент. Некоторые разработчики используют данный бокс для распространения информации об их компании. Также вы можете использовать «О приложении», чтобы пользователь мог вручную проверить наличие обновлений. Так что, настраивайте всё именно так, как нужно вам, и не стесняйтесь экспериментировать!

 

Вам может быть интересно

Scroll Up