Considerando a dificuldade de instalar Gtk2Perl em Windows (não que eu use Windows, mas quero fazer softwares que sejam úteis para mais pessoas, mesmo que os softwares sejam simples e mínimos como os que faço, além do mais pode ser necessário fazer GUI para Windows onde trabalho...); e também a falta de uma distribuição com uma licença minimamente adequada do Perl para Windows (até hoje só encontrei o ActivePerl), comecei a estudar Python com interface tkinter (baseada no Tk).
O Python oferece instalador para Windows, que já vem com suporte a Tkinter. Ou seja, se eu faço um software em Python/Tkinter, é fácil rodá-lo lá também. Apesar do visual tosco que esses softwares adquirem, o que me importa hoje é a portabilidade (e ser uma boa linguagem de script também, nem me venham querendo empurrar Java...).
O primeiro teste com estas tecnologias foi a tentativa de refazer o simulador de lance de dados xlance, que faz tempo que fiz em Perl+Gtk (e recentemente atualizei para usar Gtk2). Vejam na imagem como ficou.
Ainda está incompleto: não sorteia nada, só números, nem lida com arquivo de configuração ainda. Mas é um começo e mostrou que a idéia de mudar pra Python/Tkinter pode mesmo ser uma boa.
Baixe o Python se quiser testar o xlance 0.11. Desta vez ainda está em apenas um arquivo de pouco mais de 100 linhas. Numa próxima versão mais completa, eu refaço pacote e coisa e tal...
Xlance é um mini-projeto que eu fiz em 2001, em Perl e Gtk+. Dia desses resolvi atualizá-lo para Gtk2 e eis aqui o resultado. Mudei o ícone também.
Já que o programa continua o mesmo em funcionalidades, segue aqui uma cópia do manual antigo:
X-Lancelot é um simulador de lances de dados, gerador de nomes e sorteador de algumas coisas.
Ele atualmente: gera nomes, simula qualquer lance de dados (qualquer número de dados, de qualquer tamanho) e é capaz de sortear um dia da semana, dia do mês, mês do ano, naipe de baralho ou carta.
O algoritmo para gerar nomes é uma modificação do Alnome, em Borland Delphi para MicroSoft Windows, do mesmo autor. Ele permite que se determine um número (fator "tamanho", mas não muito controlável). Os nomes gerados por este algoritmo, se for utilizado um "tamanho" grande, tendem a se tornar "grandes" (óbvio, não?) e também difíceis de se pronunciar. Pelo menos, exceto por algum bug (o W costuma fazer isso raras vezes), ele gera nomes ao menos "pronunciáveis".
Um arquivo .xlance na raíz do seu diretório $HOME será criado. Nele você poderá habilitar algumas coisas e configurar seu X-Lancelot, de um modo geral. A seguir será detalhado como personalizar o software, o que pode ser colocado dentro deste arquivo.
TITULO=Nome que apareerá na barra de título do programa
FRASE=Mensagem que aparece entre os dois botões grandes
ESTILO=VERBOSO
DADO=2D25
DADO=DIADASEMANA
Primeiramente, todas as quatro variáveis são opcionais e, se você já rodou o programa uma vez e não mexeu no arquivo, há de encontrá-lo vazio. Em TITULO e FRASE, qualquer valor pode ser colocado. Já se você quiser usar ESTILO, o sistema entenderá se é VERBOSO (ou TAGARELA) ou não. DADO é o único que permitirá que você coloque mais de um (todos os outros também permitem isso, na verdade, mas tratam apenas a última das atribuições). DADO representa um botão/dado e você pode substituir até todos os 12 que aparecem no canto direito da janela. Quanto aos valores, eles podem ser:
| Dado | O que é? |
|---|---|
| GERANOME | Gera um nome de "tamanho" mais ou menos aleatório. |
| GERANOME-x | Gera um nome de "tamanho" x. Exemplo de uso: DADO=GERANOME-3. |
| NAIPE | Sorteia um Naipe. Retorna um de: copas, ouros, paus e espadas. |
| CARTA | Retorna A, 2..10, J, Q ou K. |
| DIADASEMANA | Retorna um dia da semana entre domingo e sábado. |
| MESDOANO | Retorna um dos doze meses, sorteado. |
| DIADOMES | Equivalente a um 1D31. Sorteia um número do intervalo [1..31] |
Por ser em Gtk2Perl, o xlance precisa tanto do interpretador Perl como da interface Gtk2Perl para funcionar corretamente.
Comentários recentes
5 semanas 4 dias atrás
20 semanas 1 dia atrás
20 semanas 6 dias atrás
21 semanas 3 dias atrás
29 semanas 5 dias atrás
34 semanas 6 dias atrás
37 semanas 3 dias atrás
37 semanas 5 dias atrás
37 semanas 5 dias atrás
42 semanas 6 dias atrás