Autor Tópico: Programa para desenvolver python  (Lida 4154 vezes)

Offline alisson_sdj

  • Usuário Ubuntu
  • *
  • Mensagens: 192
  • A leitura engrandece a alma.
    • Ver perfil
Programa para desenvolver python
« Online: 28 de Janeiro de 2013, 01:43 »
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

Offline Eddard Stark

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: Programa para desenvolver python
« Resposta #1 Online: 29 de Janeiro de 2013, 14:51 »
Creio que não exista  :-\

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

Offline Solid One

  • Usuário Ubuntu
  • *
  • Mensagens: 276
  • Linux for human beings
    • Ver perfil
Re: Programa para desenvolver python
« Resposta #2 Online: 29 de Janeiro de 2013, 16:17 »
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:
Código: [Selecionar]
#!/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:
Código: [Selecionar]
<?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

Offline alisson_sdj

  • Usuário Ubuntu
  • *
  • Mensagens: 192
  • A leitura engrandece a alma.
    • Ver perfil
Re: Programa para desenvolver python
« Resposta #3 Online: 30 de Janeiro de 2013, 00:18 »
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

Offline BrunoPT

  • Usuário Ubuntu
  • *
  • Mensagens: 222
    • Ver perfil
    • Site Pessoal
Re: Programa para desenvolver python
« Resposta #4 Online: 04 de Fevereiro de 2013, 20:24 »
Eric, o eric tem uma integração razoavel com o Qt designer