A tela não aparece [RESOLVIDO]

1. A tela não aparece [RESOLVIDO]

Willian Silva
xwillianss

(usa Ubuntu)

Enviado em 09/11/2010 - 16:29h

Olá construir uma tela com pygtk no Python, na hora que rodo o programa a tela não aparece, porque?

Segue o código abaixo:

import pygtk
pygtk.require('2.0')
import gtk

class Hello:
def __init___(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.connect('delete_event',self.delete_event)
self.window.connect('destroy',self.destroy)
self.window.set_border_width(10)

self.button = gtk.Button('Hello World')
self.button.connect('clicked',self.hello,None)
self.button.connect_object('clicked',gtk.Widget.destroy,self.window)
self.window.add(self.button)
self.button.show()

self.window.show()

def main(self):
gtk.main()

if __name__ == "__main__":
hello = Hello()
hello.main()


  


2. [help]

Willian Silva
xwillianss

(usa Ubuntu)

Enviado em 09/11/2010 - 18:19h

por favor! sou novo no LINUX, gostaria de aprender a desenvolver com Python e GTK... alguém pode me ajudar?


3. Re: A tela não aparece [RESOLVIDO]

Anderson de Oliveira Madeira
enki

(usa Zenwalk)

Enviado em 11/11/2010 - 11:56h

Cara, o seu método construtor da classe Hello tá com três underlines depois do init, e é pra tá com dois: __init__ (o seu está __init___). Simplificando o seu código ficaria assim:

http://codepad.org/NN2K3DKZ

Comentando um pouco sobre o código:
Na linha 5, no construtor da gtk.Window() você não é obrigado a passar gtk.WINDOW_TOPLEVEL. Na linha 6 nós conectamos o método on_quit() da classe Hello ao sinal destroy da janela que nós acabamos de criar, para que quando a janela for destruida, a função gtk.main_quit() seja chamada para que possa encerrar a aplicação. Depois construimos o nosso botão e o conectamos a função on_hello_clicked(), também da classe Hello, ao sinal clicked do botão para que assim que precionar o botão ele imprima 'Hello World.' no console. Depois mostramos a janela e todos os seus filhos com o método show_all() da janela. O uso desse método nos tira o trabalho de chamar o método show() para todos os filhos dos filhos dos filhos (...) da janela. Assim nós só chamamos o show_all() da janela e todos os filhos serão exibidos. Depois, nós criamos um objeto Hello anônimo e damos início ao loop principal de eventos do gtk. Aqui tem um tutorial muito bom sobre PyGTK para iniciantes:

http://zetcode.com/tutorials/pygtktutorial/

Espero que tenha te ajudado, se tiver mais alguma dúvida fica a vontade pra perguntar. t+.









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts