You are currently browsing Lauro Cesar's articles.
O método Bind() no wxPython permite associar métodos a eventos. Por exemplo:
Bind(wx.EVT_BUTTON, sys.exit(), id=ID_BUTTON)
Ao clicar, o método exit() é disparado.
Para permitir que o método disparado receba argumentos, podemos utilizar:
botao = wx.Button(self, -1, "Instalar") Bind(wx.EVT_BUTTON, lambda event: Metodo(event, 'argumento'), botao) def Metodo(self, argumento): print argumento
Para descobrir os atributos de um objeto podemos utilizar:
objeto.__dict__ vars(objeto)
Para descobrir os atributos de uma classe:
vars(Classe())
Se utilizar vars() sem argumentos, funciona como locals(), listando todas as variáveis.
Para listar métodos e atributos de um objeto:
dir(objeto)
Para determinar qual encoding seu script deve rodar, use na primeira linha:
encoding system [tabela]
Exemplo:
encoding system utf-8
Para listar as tabelas disponíveis:
encoding names
Exemplo de listagem:
foreach i [encoding names] {
puts "A tabela $i está disponível neste sistema"
}
Para manipular Strings em Tcl, utilizamos o comando string.
Se precisar substituir ponto por vírgula:
set valor { 10.00 }
puts [string map -nocase { . , } $valor]
# Retorna: 10,00
Podemos substituir várias cadeias de caracteres:
set texto "Este é um texto de teste de substituição"
puts [string map -nocase { e E s S b B } $texto]
# Retorna: EStE é um tExto dE tEStE dE SuBStituição
Naturalmente, podemos substituir palavras:
set texto "Este é um texto de teste de substituição"
puts [string map -nocase { teste TESTE um {o segundo} } $texto]
# Retorna: Este é o segundo texto de TESTE de substituição
E possível destinar um diretório para nossos códigos auxiliares ou plugins, e na inicialização do sistema importá-los, utilizando o comando source.
Por exemplo, considerando que há vários arquivos .tcl no diretório plugin/
foreach p "[glob plugin/*.tcl]" {
source $p
}
Palavras-chave: Tcl/Tk, capturar, erros
Quando um procedimento é executando em Tcl, ele retorna 1 (sucesso) ou 0 (falha). É este resultado que faz o interpretador mostrar ou não um erro.
Para não mostrar o erro ao usuário, mas detectá-lo e tratá-lo no código, use o comando catch. Ele chama o interpretador Tcl de forma recursiva, executando o código e retorna 5 possíveis sinais:
- 0 – TCL_OK
- 1 – TCL_ERROR
- 2 – TCL_RETURN
- 3 – TCL_BREAK
- 4 – TCL_CONTINUE
Por exemplo, como saber se a conexão ao banco de dados foi bem sucedida?
if { [catch {set token [mysqlconnect \
-host sqlserver \
-user user_db \
-db banco_de_dados \
-password senha]} err_con] } {
puts "Erro ao Conectar : $err_con"
}
Se o comando de conectar obteve sucesso, o catch retorna 0 (zero) ou false, fazendo com que o if não execute.
Palavras-chave: Tcl/Tk, pack, grid, place
A sintaxe padrão para a criação de widgets é:
widget toplevel.my_id opções_do_widget pack toplevel.my_id opções_do_pack
Mas também é possível reunir tudo em uma só linha:
pack [widget toplevel.my_id opções_do_widget] opções_do_pack
Por exemplo:
label .my_label -text "Oi Mundo!" -bg red -fg yellow pack .my_label -expand yes -fill x
Também pode ser escrito como:
pack [label .my_label -text "Oi Mundo!" -bg red -fg yellow] \
-expand yes -fill x







Comentários Recentes