Automatizar criação de Formulário Simples em Python e Gtk

520 views
Skip to first unread message

Marcio Luis Siqueira

unread,
Mar 3, 2016, 7:29:32 AM3/3/16
to Python Brasil
Bom dia a todos! Sou autodidata e xereto, com isso estou sempre "criando" aplicativos para treinar e uma das coisas que mais me toma tempo é a criação dos formulários em Gtk. Aí pensei, e se eu criasse uma classe onde eu necessitasse apenas passar a ela o nome dos campos Entry e ela me devolvesse formulário pronto, com botão de Salvar e Cancelar e todos os campos prontos!? Claro, um formulário bem simples, mas que funciona bem para aplicações simples; 
Ontem coloquei a ideia em prática e saiu o que postei no pastebin. Gostaria de saber o que acham, sugestões, se faz sentido ou não, se tem utilidade... qualquer coisa que possam me dizer da ideia e do código. Lembrando que sou autodidata e bem café-com-leite rs.


Resultado


João Luiz Cadore

unread,
Mar 4, 2016, 6:20:59 AM3/4/16
to Python Brasil
Olá, interessante o projeto.
Peço que pesquise no Github o que existe de similares, pode ser mais interessante contribuir para um projeto já existente e maduro do que iniciar um novo projeto.
É uma idéia bem comum, com certeza haverá outros projetos similares.

Bom, mas contribuindo.
Sugiro que o campo não seja apenas uma string e sim um objeto mais complexo, onde vc pode configurar seu campo para ser mais flexivel.
Por exemplo:
field = Field(label="Nome", type="text", args=Args(max_size=35), onAction=functionToCallOnPerformed)

Outra coisa muito interessante, que acredito ser algo como "tendência", é por toda essa configuração em um XML e desenvolver um interpretador de XML.
Um exemplo muito bem feito disso é o JavaFX para Java, onde pode ser criado uma tela usando o Scene Builder, salvar a mesma em um arquivo e carrega-lo no seu código.
Outro exemplo é o Glade para GTK, que segue a mesma idéia.

Pense em sistemas maiores, desenvolvidos por várias pessoas. Leve em consideração boas praticas de desenvolvimento e divisão de responsabilidades (camadas).
Isso tudo ajuda vc a desenvolver um framework sustentável.

Bom, eu sei que vc ainda tá começando (pelo que falou no inicio), mas nada melhor do que começar tendo uma visão mais ampla.
A minha idéia é não fazer vc desistir do seu projeto, mas tentar dar um futuro mais próspero.

Bons estudos. 

Joao Luiz

John Evan Dizaro

unread,
Mar 4, 2016, 8:05:49 AM3/4/16
to Python Brasil
Parabéns excelente estudo.

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
John Evan Dizaro - Desenvolvimento de Sistema Computacionais
Linux, MSWindows
Celular (41) 9540-4240

 °v° NÃO USE DROGAS,
/(_)\ USE GNU/LINUX
 ^ ^

Marcio Luis Siqueira

unread,
Mar 4, 2016, 10:22:39 AM3/4/16
to python...@googlegroups.com
Eita, não tinha pensado tão longe como criar um framework! Estava tentando apenas agilizar algo simples deixando mais simples ainda, e tirei a ideia depois de brincar um pouco com Django e seus forms "prontos", pensei "Por que não fazer o mesmo em Gtk?"; Sei que existe o Glade, mas queria mesmo algo semelhante ao Django que pega os dados do models.py e já cira as tabelas no Bd e monta o formulário porém em Gtk.
Sobre contribuir em um projeto já existente creio que eu ainda não seja capaz, meu conhecimento ainda é muito superficial e estou progredindo muito lentamente;
 Não conheço ninguém com gosto por programação pessoalmente, onde moro não existem escolas voltadas programação e mesmo que existisse não teria dinheiro para pagar. Mas vou caçando informações web a fora(ou seria  a dentro?), espero um dia realmente poder contribuir em projetos. 
Agradeço muito as respostas de todos pois me ajudam a agregar conhecimento e idéias!

Você recebeu essa mensagem porque está inscrito em um tópico no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse tópico, acesse https://groups.google.com/d/topic/python-brasil/U2in5rQLUh8/unsubscribe.
Para cancelar inscrição nesse grupo e todos os seus tópicos, envie um e-mail para python-brasi...@googlegroups.com.

Para mais opções, acesse https://groups.google.com/d/optout.



--
- Marcio Luís - 

Linux - Junior Polegato

unread,
Mar 4, 2016, 12:21:34 PM3/4/16
to python...@googlegroups.com
Em 04-03-2016 12:21, Marcio Luis Siqueira escreveu:
Eita, não tinha pensado tão longe como criar um framework! Estava tentando apenas agilizar algo simples deixando mais simples ainda, e tirei a ideia depois de brincar um pouco com Django e seus forms "prontos", pensei "Por que não fazer o mesmo em Gtk?"; Sei que existe o Glade, mas queria mesmo algo semelhante ao Django que pega os dados do models.py e já cira as tabelas no Bd e monta o formulário porém em Gtk.
Sobre contribuir em um projeto já existente creio que eu ainda não seja capaz, meu conhecimento ainda é muito superficial e estou progredindo muito lentamente;
 Não conheço ninguém com gosto por programação pessoalmente, onde moro não existem escolas voltadas programação e mesmo que existisse não teria dinheiro para pagar. Mas vou caçando informações web a fora(ou seria  a dentro?), espero um dia realmente poder contribuir em projetos. 
Agradeço muito as respostas de todos pois me ajudam a agregar conhecimento e idéias!

Olá!

        Desenvolvo com GTK+ desde 1998, usando C, C++ e desde 2008 com Python.

        Eu trouxe praticamente todo desenvolvimento desde então para Python, disponibilizado no meu projeto Pole [1], acho quase um framework, mas é mais uma reunião de funções que facilitam bastante o trabalho do dia-a-dia com PyGtk, Glade, Geany (ou outro editor IDE de sua preferência), sendo integrado tudo pelo GladePy, o qual gera um código inicial em Python a partir do XML gerado pelo Glade, depois a cada mudança nesse XML, executa-se o GladePy novamente e este atualiza o código com novas funções. Se aplicar o patch no Glade, possibilita fazer essa chamada diretamente do Glade, isto é, clicando num quadro que aparecerá ao lado da função de callback, atualiza o código, abre o editor e já te posiciona abaixo da função para começar a trabalhar, bem parecido com o Dephi ou C++ Builder da Borland.

        Até meio do ano passado eu estava desenvolvendo junto com um cara que trabalhava comigo um sistema para essa criação automática de formulário em Python, pois já a tenho em C++, e também estudando (meio caminho andado) em fazer CRUD diretamente na grade (TreeView) do GTK+, não necessitando portando de formulário.

        Também tem o Kiwi [2] usado no Stoq [3].

        Dê uma olhada nesses projetos, e se achar o meu interessante, pode usar e contribuir.

[1] https://github.com/JuniorPolegato/pole
[2] https://github.com/stoq/kiwi
[3] http://www.stoq.com.br/


--

[]'s

Junior Polegato

Jeferson Daniel

unread,
Mar 5, 2016, 9:44:42 AM3/5/16
to Python Brasil
Parabéns, a ideia de facilitar a criação de formulários é boa. Uma coisa que sempre vai acontecer é formulários com layouts em mais colunas ou campos multilinhas. Então usar alguma geração baseada em XML como o Junior Polegado disse é mais aplicável.

Sobre seu aprendizado, eu recomendo você experimentar algum curso online gratuito. A Khan Academy tem um curso de computação mais teórico e a CodeAcademy tem um curso de Python.

Faço essas recomendações pois também comecei a programar assim e muitas vezes senti falta do lado mais teórico.


Reply all
Reply to author
Forward
0 new messages