Olá alunos!
Como vocês podem ver o blog está de visual novo! Uhul! Ainda tenho que arrumar uns detalhes, mas no geral acho que está muito legal =)
Bem o exercício da última aula foi bem pesadinho, o pessoal teve que suar para resolver hehe, então acredito que aprenderam bastante sobre Python, teve até gente dizendo que passou a noite fazendo os exercícios e com isso aprendeu bestante. Eu fico muito feliz de ver esse tipo de coisa acontecendo, acredito que estou estimulando vocês, alunos e leitores, a aprender e crescer mais. Então vamos em frente!
Como alguns devem ter visto eu lancei o GeSpeak 0.3 nesta semana, ele é um bom exemplo do que veremos hoje, as aplicações em PyGTK. O PyGTK usa o GTK+ para oferecer um conjunto de elementos gráficos para desenvolvimento de interfaces com o usuário. O PyGTK é multiplataforma (*nix e Windows) o que significa que seu código pode rodar sem alterações praticamente em qualquer canto. O que não é o caso do GeSpeak, já que ele utiliza comandos do Linux para algumas tarefas.
Então vamos começar com o básico, janelas e botões.
O código abaixo cria uma janela com um botão, não há, ainda qualquer tipo de ação para o botão:
1 2 3 4 5 6 7 8 9 | #!/usr/bin/env python import pygtk pygtk.require('2.0') import gtk janela = gtk.Window(gtk.WINDOW_TOPLEVEL) botao = gtk.Button("Clique aqui...") janela.add(botao) janela.show_all() gtk.main() |
Pronto, um programinha bem simples. Ele só exibe o botão, mas vamos entender como isso funciona…
Na segunda linha estamos importando o módulo PyGTK.
Na terceira linha nós usamos a função require do PyGTK para ter certeza que estamos com um versão da família 2.x.
A quarta linha é responsável por importar o módulo GTK.
Na quinta linha é criado um objeto da classe Window do módulo gtk.
Na sexta linha é criado um botão usando a classe Button.
Na sétima linha adicionamos o botão à janela usando a função add() da classe Window.
A oitava linha serve para exibir a janela e tudo o que está dentro dela, com a função show_all().
E na nona linha chamamos o looping principal do GTK com a função main().
Agora vou mostrar um exemplo em que o clique do botão dispara uma função que exibirá “Hello World” no terminal:
1 2 3 4 5 6 7 8 9 10 11 12 | #!/usr/bin/env python import pygtk #pygtk.require('2.0') import gtk def ola_mundo(widget): print "Hello World" janela = gtk.Window(gtk.WINDOW_TOPLEVEL) botao = gtk.Button("Clique aqui...") botao.connect('clicked', ola_mundo) janela.add(botao) janela.show_all() gtk.main() |
Vejam que agora a função connect() é usada para “conectar” o sinal “clicked” do botão à função ola_mundo().
Bem por enquanto é isso. Na semana que vem teremos mais, recomendo que todos leia o artigo “Mantendo a Sanidade com o Glade“, pois no começo dele é explicado como o GTK trabalha, leiam sobre os sinais e também a parte “Explodindo Coisas”.
Lição de Casa
A lição de casa de hoje é muito simples, mas vocês vão precisar usar a referência do PyGTK para fazer. Eu só quero uma janela com um botão escrito “Clique aqui”, e quando a pessoa clicar o texto do botão deve mudar para “Clicado”. Boa sorte =)
Outros textos que você pode gostar:
- Curso de Python – Aula 17 – Mais sobre o PyGTK Olá alunos! hoje vamos continuar falando sobre PyGTK. Na aula...
- Curso de Python – Aula 19 – PyGTK e sua documentação Olá pessoal! Aqui vamos nós para mais uma aula de...
- Curso de Python – Aula 10 – Entrada de dados e formatação de strings Olá alunos! A aula de hoje vai começar um...
Posts relacionados trazidos a você pelo Yet Another Related Posts Plugin.



























>

Diego Souza
on mar 15th, 2009
@ 21:23:
Cara, parabéns, ficou ótimo o novo tema.
É desse tipo de desenvolvimento web que eu gosto, clean, forte uso de css e conteúdo de qualidade.
[]’s.
[Resposta]
Grobsch
on mar 16th, 2009
@ 7:14:
Agora sim nós vamu aprender a fazer interfaces.;; hehe
[Resposta]
Magnun
on mar 16th, 2009
@ 8:03:
Muito bom cara!
Quando você falou que ia ter PyGTK fiquei preocupado porque, para muitos, alguns conceitos (signals por exemplo) são muito complexos!
Mas vendo como você abordou essa introdução, acredito que a galera vai conseguir pegar tranquilo…
Até mais…
[Resposta]
Luiz Agostinho
on mar 16th, 2009
@ 10:13:
Olá,
Ficou muito bom o novo tema! Parabéns! Só acho que ficou faltando um link para o Fórum, pelo menos não consegui achá-lo!
Abraço!
[Resposta]
Igo Coelho
on mar 16th, 2009
@ 13:49:
Muito show!!!
Tive apenas que definir a codificação na segunda linha pra funcionar no meu ubuntu.
# -*- coding: iso-8859-1 -*-
[Resposta]
Henry
on mar 16th, 2009
@ 14:23:
vi um erro: ” isso aprendeu bestante. ”
valeu pela aula
[Resposta]
Rodrigo Cesar
on mar 17th, 2009
@ 0:22:
Infog,
qual Ide vc usa ? Uso IDLE mas ele trava quando coloco algum programa
com gtk já li em algum lugar que é pq ele é feito nessa biblioteca.
Baixei o Pydev pra o eclipse mas ele diz o seguinte quando coloco
pra rodar algum programa com gtk
AttributeError: ‘module’ object has no attribute ‘Window’
[Resposta]
Curso de Python - Aula 17 - Mais sobre o PyGTK « InFog
on mar 29th, 2009
@ 11:43:
[...] vamos continuar falando sobre PyGTK. Na aula passada vimos uma pequena introdução ao PyGTK, acredito que vocês não tenham encontrado muitas [...]
franklin anderson
on abr 1st, 2009
@ 9:32:
ola amigo !!
ja brinquei com pygtk e achei muito legal. Nao sei se voce ja usou mas de uma olhada no glade, tu vai ver que como fica muito mais bonito desenvolver aplicativos com pygtk usando o glade…
[Resposta]
Rafael de Almeida
on abr 20th, 2009
@ 23:31:
Eu uso o Ubuntu 8.10, olha o que está acontecendo:
2
3
4
5
6
7
8
Traceback (most recent call last):
File "./gtk.py", line 5, in
import gtk
File "/home/rafael/Desktop/gtk.py", line 6, in
janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
AttributeError: 'module' object has no attribute 'Window'
rafael@lamp:~/Desktop$
[Resposta]
mauro
on abr 28th, 2009
@ 20:42:
Traceback (most recent call last):
File “”, line 1, in
import pygtk
ImportError: No module named pygtk
aparece quando eu escrevo import pygtk
meu nao é linux mas nos cursos anteriores eu conseguia normalmente
[Resposta]
Evandson
on mai 13th, 2009
@ 9:31:
Tenta Reinstalar ele…meu python estava assim tmb…não estava funcionando nem o Pygtk nem o gtk…então desinstalei os 3 e reinstalei e ta funcionando a 1000…:P
flw!!
[Resposta]
Evandson
on mai 13th, 2009
@ 9:36:
Rafael…
muda o nome do arquivo…
de gtk.py para exemplogtk.py
e funciona normal!!!
flw!!
[Resposta]
Renan Fernandes
on jul 12th, 2009
@ 21:04:
Muito bom!
Simples, funcional, aborda de maneira clara e objetiva os conceitos básicos do pygtk além de estimular os leitores e alunos a buscar por referências e aprender cada vez mais.
Está de parabéns.
Fique com Deus.
[Resposta]
Programar com Interface
on out 13th, 2009
@ 8:08:
[...] [...]
Rafael Abrahão Santos
on nov 22nd, 2009
@ 17:06:
Muito bom mesmo!
Eu estava mesmo procurando por conteúdo em português sobre PyGTK, apesar
de saber inglês!
Agora sobre as conexões, eu vi vários tipos de ‘connect’. Minha dúvida é: quando
terei de usar cada uma?
Mas me ajudou bastante, muito bom!
Fiquem todos com Deus!
[Resposta]
Eduardo Mucelli R. Oliveira
on jun 8th, 2010
@ 17:32:
@Rafael,
Os “vários tipos de connect” são administrados pela classe base gobject.GObject. Em suma
existe object.{connect, connect_after, connect_object, connect_object_after}, que
diferenciam-se, falando de maneira grosseira, no chamada da função que vai
lidar com callback.
Leia http://pygstdocs.berlios.de/pygobject-reference/class-gobject.html
[Resposta]
Eduardo Mucelli R. Oliveira
on jun 8th, 2010
@ 17:35:
@Rafael,
Quem lida com sinais é a gobject.GObject. A diferença entre os tipos de “connect” é como a função de callback será chamada.
Leia: http://pygstdocs.berlios.de/pygobject-reference/class-gobject.html
[Resposta]