Programa para desenvolver python

Iniciado por alisson_sdj, 28 de Janeiro de 2013, 01:43

tópico anterior - próximo tópico

alisson_sdj

ola amigos do forum gostaria de saber se ha algium programa tipo eclipse ou netbens que deselnvolve programa em python interfaces graficas com janelas e afins. desde ja agradeço pelas respostas
"A melhor maneira de prever o futuro é inventá-lo." Alan Kay

Eddard Stark

Creio que não exista  :-\

O único programa que eu conheço é o py2exe, que torna o script um executável.

Solid One

Um programa que faça as duas coisas ao mesmo tempo, eu desconheço. No entanto, você pode fazer as duas coisas separadas.

Para a interface gráfica, você pode utilizar um aplicativo chamado Glade (https://apps.ubuntu.com/cat/applications/glade/). Esse aplicativo permite desenhar interfaces gráficas GTK arrastando componentes, e em seguida exportar um arquivo de extensão .glade, cuja sintaxe é similar a XML.

Para fazer a programação da interface gráfica e do aplicativo como um todo, tendo conhecimentos básicos de Python, você pode fazer a codificação no braço utilizando NetBeans ou Eclipse.

Os dois exemplos abaixo fazem isso:

Código em Python:

#!/usr/bin/env python

import sys
try:
import pygtk
pygtk.require("2.0")
except:
pass

try:
import gtk
except:
print("GTK Not Available")
sys.exit(1)

class proxer_GUI:

def __init__(self):
builder = gtk.Builder()
builder.add_from_file("proxer.glade")
self.janela_proxer = builder.get_object ("janela_proxer")
self.entrada_nomeusuario = builder.get_object("entrada_nomeusuario")
self.entrada_senha = builder.get_object("entrada_senha")
self.botao_ok = builder.get_object("botao_ok")
self.botao_cancelar = builder.get_object("botao_cancelar")

def passar_credenciais(self, object):
print self.entrada_nomeusuario.get_text()
print self.entrada_senha.get_text()
gtk.main_quit()

proxer_GUI = proxer_GUI()
proxer_GUI.janela_proxer.connect("destroy", gtk.main_quit)
proxer_GUI.botao_ok.connect("clicked", proxer_GUI.passar_credenciais)
proxer_GUI.botao_cancelar.connect("clicked", gtk.main_quit)
proxer_GUI.janela_proxer.show()
gtk.main()

Arquivo proxer.glade, referenciado no código acima:

<?xml version="1.0" encoding="UTF-8"?>
<interface>
 <requires lib="gtk+" version="2.24"/>
 <!-- interface-naming-policy project-wide -->
 <object class="GtkWindow" id="janela_proxer">
   <property name="can_focus">False</property>
   <property name="window_position">center</property>
   <child>
     <object class="GtkFrame" id="frame1">
       <property name="visible">True</property>
       <property name="can_focus">False</property>
       <property name="label_xalign">0</property>
       <property name="shadow_type">none</property>
       <child>
         <object class="GtkAlignment" id="alignment1">
           <property name="visible">True</property>
           <property name="can_focus">False</property>
           <property name="bottom_padding">12</property>
           <property name="left_padding">12</property>
           <property name="right_padding">12</property>
           <child>
             <object class="GtkTable" id="table1">
               <property name="visible">True</property>
               <property name="can_focus">False</property>
               <property name="n_rows">4</property>
               <property name="n_columns">2</property>
               <property name="column_spacing">10</property>
               <property name="row_spacing">5</property>
               <child>
                 <object class="GtkImage" id="imagem_chave">
                   <property name="visible">True</property>
                   <property name="can_focus">False</property>
                   <property name="pixbuf">proxer.svg</property>
                 </object>
               </child>
               <child>
                 <object class="GtkLabel" id="rotulo_mensagem">
                   <property name="visible">True</property>
                   <property name="can_focus">False</property>
                   <property name="label" translatable="yes">O proxy http://proxy.betania.uvanet.br:3128 está solicitando
um nome de usuário e senha para executar o comando "hplip-setup"</property>
                 </object>
                 <packing>
                   <property name="left_attach">1</property>
                   <property name="right_attach">2</property>
                 </packing>
               </child>
               <child>
                 <object class="GtkLabel" id="rotulo_nomeusuario">
                   <property name="visible">True</property>
                   <property name="can_focus">False</property>
                   <property name="xalign">1</property>
                   <property name="label" translatable="yes">Nome de usuário:</property>
                 </object>
                 <packing>
                   <property name="top_attach">1</property>
                   <property name="bottom_attach">2</property>
                 </packing>
               </child>
               <child>
                 <object class="GtkEntry" id="entrada_nomeusuario">
                   <property name="visible">True</property>
                   <property name="can_focus">True</property>
                   <property name="invisible_char">•</property>
                   <property name="primary_icon_activatable">False</property>
                   <property name="secondary_icon_activatable">False</property>
                   <property name="primary_icon_sensitive">True</property>
                   <property name="secondary_icon_sensitive">True</property>
                 </object>
                 <packing>
                   <property name="left_attach">1</property>
                   <property name="right_attach">2</property>
                   <property name="top_attach">1</property>
                   <property name="bottom_attach">2</property>
                 </packing>
               </child>
               <child>
                 <object class="GtkLabel" id="rotulo_senha">
                   <property name="visible">True</property>
                   <property name="can_focus">False</property>
                   <property name="xalign">1</property>
                   <property name="label" translatable="yes">Senha:</property>
                 </object>
                 <packing>
                   <property name="top_attach">2</property>
                   <property name="bottom_attach">3</property>
                 </packing>
               </child>
               <child>
                 <object class="GtkEntry" id="entrada_senha">
                   <property name="visible">True</property>
                   <property name="can_focus">True</property>
                   <property name="visibility">False</property>
                   <property name="invisible_char">•</property>
                   <property name="primary_icon_activatable">False</property>
                   <property name="secondary_icon_activatable">False</property>
                   <property name="primary_icon_sensitive">True</property>
                   <property name="secondary_icon_sensitive">True</property>
                 </object>
                 <packing>
                   <property name="left_attach">1</property>
                   <property name="right_attach">2</property>
                   <property name="top_attach">2</property>
                   <property name="bottom_attach">3</property>
                 </packing>
               </child>
               <child>
                 <object class="GtkHButtonBox" id="hbuttonbox1">
                   <property name="visible">True</property>
                   <property name="can_focus">False</property>
                   <property name="spacing">10</property>
                   <property name="layout_style">end</property>
                   <child>
                     <object class="GtkButton" id="botao_cancelar">
                       <property name="label">gtk-cancel</property>
                       <property name="visible">True</property>
                       <property name="can_focus">True</property>
                       <property name="receives_default">True</property>
                       <property name="use_action_appearance">False</property>
                       <property name="use_stock">True</property>
                     </object>
                     <packing>
                       <property name="expand">False</property>
                       <property name="fill">False</property>
                       <property name="position">0</property>
                     </packing>
                   </child>
                   <child>
                     <object class="GtkButton" id="botao_ok">
                       <property name="label">gtk-ok</property>
                       <property name="visible">True</property>
                       <property name="can_focus">True</property>
                       <property name="receives_default">True</property>
                       <property name="use_action_appearance">False</property>
                       <property name="use_stock">True</property>
                     </object>
                     <packing>
                       <property name="expand">False</property>
                       <property name="fill">False</property>
                       <property name="position">1</property>
                     </packing>
                   </child>
                 </object>
                 <packing>
                   <property name="left_attach">1</property>
                   <property name="right_attach">2</property>
                   <property name="top_attach">3</property>
                   <property name="bottom_attach">4</property>
                 </packing>
               </child>
               <child>
                 <placeholder/>
               </child>
             </object>
           </child>
         </object>
       </child>
       <child type="label">
         <object class="GtkLabel" id="label1">
           <property name="visible">True</property>
           <property name="can_focus">False</property>
           <property name="use_markup">True</property>
         </object>
       </child>
     </object>
   </child>
 </object>
</interface>


Outro aplicativo que é tido como um IDE completo para desenvolvimento em Python, tanto no que diz respeito a interface gráfica como em código, chama-se Quickly (https://apps.ubuntu.com/cat/applications/quickly/). Em teoria, por ele você pode desenhar a interface gráfica e escrever o código num programa só, sem falar que esse programa  facilita no processo de localização do aplicativo (tradução para outras línguas), armazenamento de arquivos de configuração, empacotamento, etc.

Nesse link do Askubuntu você encontra mais detalhes: http://askubuntu.com/questions/56225/is-there-an-gui-designer-for-python

alisson_sdj

por isso que eu digo aqui é minha escola de linux ubuntu.suas sugestões estão tenho um grande valor
"A melhor maneira de prever o futuro é inventá-lo." Alan Kay

BrunoPT

Eric, o eric tem uma integração razoavel com o Qt designer