Visual – WxPython – Multiple Document Interface – Python – Linux

Publicado: 3 de maio de 2014 em Python

Em interface gráfica do usuário (GUI), uma interface de documentos múltiplos, ou MDI, acrônimo para Multiple Document Interface é um método de organização de aplicações gráficas em janelas que residem em uma única janela, a janela principal da aplicação. A única exceção são possíveis janelas modais da aplicação.

Com múltiplas interfaces de documentos, uma única barra de menu e / ou barra de ferramentas é compartilhado entre todas as janelas filho, reduzindo a desordem e uma utilização mais eficiente do espaço na tela. As janelas filho de um aplicativo pode ser ocultada / mostrada / minimizada / maximizada como um todo. Os autores de aplicações multi-plataforma podem fornecer a seus usuários um comportamento consistente da aplicação entre plataformas.

MDI - WxPython - Windows

MDI – WxPython – Windows

WxPython

É um kit de ferramentas GUI para a linguagem de programação Python. Ele permite que os programadores Python desenvolvam programas com uma interface gráfica do usuário altamente funcional e robusta, simples e fácil. Ele é implementado como um módulo de extensão Python (código nativo) que envolve a biblioteca wxWidgets de plataforma cruzada, e é escrito em C++.

Download: http://www.wxpython.org/index.php

WxPython – Linux Ubuntu Bug (WxWidgets apps don’t have menus)

O código Python é multi-plataforma, porem a coleção de Widgets WxPython possui um erro identificado na plataforma Linux Ubuntu e não exibe os menus, até a data deste post a instalação da versão mais recente do WxPython não corrigiu o problema, portanto escrevemos e testamos este código na plataforma Windows.

Informações sobre o erro: https://bugs.launchpad.net/ubuntu/+source/wxwidgets2.8/+bug/662077

Exemplo:

Neste exemplo criamos um formulário MDI básico e um menu.

Python

#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Desenvolvimento Aberto
# MdiForms.py
 
# importa modulos
import wx

# Declara Classe
class MDIFormulario(wx.MDIParentFrame):

    # Declara Contrutor
    def __init__(self):

        # Cria Formulario Pai
        wx.MDIParentFrame.__init__(self, None, -1, "Python - Formulario - MDI ",size=(wx.GetDisplaySize()))

        # Cria Menu
        menu = wx.Menu()
        menu.Append(5000, "&Novo")
        menu.Append(5001, "&Sair")

        # Cria Barra de menus
        menubarra = wx.MenuBar()
        menubarra.Append(menu, "&Formulario")
        self.SetMenuBar(menubarra)

        # Declara Eventos dos menus
        self.Bind(wx.EVT_MENU, self.OnNovoFormulario, id=5000)
        self.Bind(wx.EVT_MENU, self.OnSair, id=5001)

    # Cria evento de saida
    def OnSair(self, evt):
        self.Close(True)

     # Cria Janela
    def OnNovoFormulario(self, evt):
        # Cria Formulario Filho
        FormularioFilho = wx.MDIChildFrame(self, -1, "Formulario Filho", size=(400, 200))
        
        # Cria componentes do formulario
        self.texto = wx.StaticText(FormularioFilho, label="Digite seu nome: ", pos=(20, 30))
        self.campo = wx.TextCtrl(FormularioFilho, size=(300, -1), pos=(20, 60))
        self.botao = wx.Button(FormularioFilho, label="Ok", pos=(20, 90))
        
        # Exibe formulario
        FormularioFilho.Show(True)

# Cria aplicação Wx
app = wx.PySimpleApp()

# Cria formulario
formulario = MDIFormulario()
formulario.Show()

# Loop do tcl
app.MainLoop()
Publicidade
comentários
  1. Leandro disse:

    Oi,

    você indicaria alguma ferramenta gráfica para trabalhar no Windows ?

    • Olá Leandro,

      O Wx Python funciona no Windows e roda em x64, eu particularmente gosto dele pq ele é feito em C++ e tem uma semelhança com os componentes do C++ incluindo as nomenclaturas dos objetos por exemplo um componente “StaticText” em C++ é um StaticText em Python, além de varias outras semelhanças, é muito parecido com o C++ MFC da Microsoft (C++ nativo), roda muito bem em Linux e Mac Os componentes são fáceis de utilizar, muito leves e criam interfaces gráficas muito bonitas em qualquer plataforma.

      Uma boa pedida é já que você vai usar Windows utilizar a IDE Visual Studio com os plug-ins para Python que você estará muito bem de ferramentas, suporta também os frameworks web mais utilizados para Python.

      Temos um post de como usar o Visual Studio em com o Python

      Espero ter ajudado, qualquer coisa estou a disposição.
      Abraços.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s