QUICK REFERENCE: ENTRY

Esse objeto é também conhecido como TextBox e serve para entrada de dados.

Um objeto Entry pode ser criado com, por exemplo:

self.tb = gtk.Entry()

Para adicionar esse objeto à tela do XO, numa dada posição, usamos normalmente um objeto Fixed (visto em aula anterior):

Os métodos de Entry são:

show()

hide()

destroy()

get_text()

Para capturar texto digitado

set_text(texto)

Para colocar texto

grab_focus()

Joga o "focus" no objeto. Sugerimos colocar um texto vazio. Aparece o cursor.

set_max_length(n)

Máxima quantidade de dígitos recebíveis

set_size_request(largura, altura)

Pode ser maior ou menor que o espaço para a quantidade de dígitos recebíveis

set_editable(bool)

No caso, bool pode ser True ou False: se pode ou não receber dados teclados.

set_visibility(bool)

A visibilidade aí é do que foi digitado. Bom para password, por exemplo.

No exercício queremos que, quando um botão for clicado, o que foi digitado vá para um Label.

Claro que esse código tem que vir dentro de uma Classe etc. etc. como já mostramos.

#...
   def __init__(self):
       Activity.__init__(self)
       #Definindo o tipo e tamanho das letras
       gtk.settings_get_default().props.gtk_font_name = "Bitstream Vera Sans Mono 20"
       #Criando base para layout
       self.fix = gtk.Fixed()
       self.add(self.fix)
       self.fix.show()
       #Criando Label vazio
       self.lb = gtk.Label()
       self.fix.put(self.lb, 200,400)
       self.lb.show()
       #Criando Button
       self.bt = gtk.Button("TRANSPORTAR")
       self.fix.put(self.bt, 200,600)
       self.bt.show()
       #Definindo o signal e respectiva função
       self.bt.connect("clicked",self.mostra, None)
       #Criando um TextBox
       self.tb = gtk.Entry()
       self.tb.set_max_length(20)
       self.tb.set_size_request(300,40)
       self.fix.put(self.tb, 200,200)
       self.tb.set_text("")
       self.tb.show()
       self.tb.grab_focus()

    
   def mostra(self,widget,data=None):
       self.lb.set_text(self.tb.get_text())
       self.tb.set_text("")

Usamos a fonte "Sans Mono 20" para mostrar que é possível mudar a fonte. O que caracteriza a "Sans Mono" em relação a "Sans" (default) é que as letras têm mesma largura (um "i" tem a mesma largura de um "m"). Isso às vezes é importante em edições.

As fontes disponíveis no XO são:

Mesmo que seja possível sair do "modo linha de comando" (Terminal) para a tela inicial do XO, sempre dê um reboot para testar sua aplicação. No XO use: Ctrl+Alt+Erase


LIÇÂO ANTERIOR PRÓXIMA LIÇÂO
ÍNDICE HOMEPAGE