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()

Приведенный выше код дает следующий вывод -