wxPython - Инструменты построения графического интерфейса
Создание красивого графического интерфейса с помощью ручного кодирования может быть утомительным. Инструмент визуального графического интерфейса пользователя всегда под рукой. Доступно множество IDE для разработки графического интерфейса, ориентированных на wxPython. Ниже приведены некоторые из них -
- wxFormBuilder
- wxDesigner
- wxGlade
- BoaConstructor
- gui2py
wxFormBuilder- это кроссплатформенный конструктор графического интерфейса пользователя WYSIWYG с открытым исходным кодом, который может переводить дизайн графического интерфейса пользователя wxWidget в формат C ++, Python, PHP или XML. Здесь дается краткое введение в использование wxFormBuilder.
Прежде всего, необходимо загрузить и установить последнюю версию wxFormBuilder из http://sourceforge.net/projects/wxformbuilder/. При открытии приложения появляется новый проект с пустой серой областью в центре.
Дайте проекту подходящее имя и выберите Python в качестве языка генерации кода. Это делается в окне свойств объекта, как показано на следующем изображении -
Затем на вкладке «Формы» палитры компонентов выберите «Рамка».
Добавьте вертикальный wxBoxSizer из вкладки «Макеты».
Добавьте необходимые элементы управления в поле с подходящими подписями. Здесь добавляются StaticText (метка), два объекта TextCtrl (текстовые поля) и объект wxButton. Рамка выглядит как на следующем изображении -
Включите Expand и Stretch для этих трех элементов управления. В свойствах объекта wxButton назначьте функцию findquare () событию OnButtonClick.
Сохраните проект и нажмите F8, чтобы сгенерировать код Python для разработанного графического интерфейса. Пусть сгенерированный файл будет называться Demo.py
В исполняемом скрипте Python импортируйте demo.py и определите функцию FindSquare (). Объявите объект Application и запустите цикл основного события. Ниже приведен исполняемый код -
import wx
#import the newly created GUI file
import demo
class CalcFrame(demo.MyFrame1):
def __init__(self,parent):
demo.MyFrame1.__init__(self,parent)
def FindSquare(self,event):
num = int(self.m_textCtrl1.GetValue())
self.m_textCtrl2.SetValue (str(num*num))
app = wx.App(False)
frame = CalcFrame(None)
frame.Show(True)
#start the applications
app.MainLoop()
Приведенный выше код дает следующий вывод -