You are currently browsing the category archive for the 'PyGTK' category.

Hoje adicionei mais um software na minha pagina de projetos pessoais, é um software pequeno escrito em PyGTK, com banco de dados SQLite.

Para fins de administração de “games house”, ainda está em faze inicial, mas já é funcional, até onde foi escrito.

O próximo passo é colocar alguma documentação, e melhorar um um pouco os recursos, acho que logo terei uma versão final.

aos interessados fiquem de olho na pagina do projeto no Google Code

http://code.google.com/p/pygamehouseadmin/

Quando comecei a aprender PyGTK eu pensei em criar um programa simples para salvar os dados de Login e Senha dos vários servidores de Lineage 2 que eu jogava, como eram vários servidores e varias contas de usuário por servidor era fácil de esquecer.

Então comecei um projeto chamado PyL2Catalogo, criei uma interface no Glade e comecei a escrever o código, isso ja faz algum tempo e o programa esta perdido dentro de um pendrive, mas agora vou disponibilizar eles para que quem quiser aprender a usar PyGTK com Glade possa aproveitar.
Como não é possivel upar um arquivo compactado para o wordpress, vou colocar o arquivo no grupo PyGTK-Brasil e vou deixar só o link aqui para quem quiser pegar.

PyL2Catalogo.zip

E um screenshot para quem quiser conferir antes de baixar

Hoje eu resolvi escrever um script para gerar senhas aleatórias, e depois que o script ficou pronto eu decidi que ele precisava de uma interface grafica.

Então comecei a criar uma interface em GTK

e o resultado é o que vocês vão ver agora


#!/usr/bin/env python
# -*- coding: utf-8 -*

"""
# Script para gerar senhas aleatórias
# Por: Carlos Henrique Marques da Cunha Filho
# E-mail: rickadt@gmail.com
# Site: http://codigobr.wordpress.com/
# Versão 0.1
"""

import pygtk
pygtk.require("2.0" )
import gtk
from random import choice

##########
##########
class senhaForte:
    ##########
    ### Função construtora da classe
    def __init__(self):
        " Definindo as propriedades da janela "
        self.janela = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.janela.set_position(gtk.WIN_POS_CENTER)
        self.janela.set_title('Senha Forte' )
        self.janela.set_size_request(300, 300)
        self.janela.set_resizable(False)

        " Adicionando os wigets a janela "
        self.fixed = gtk.Fixed()
        self.janela.add(self.fixed)

        self.fixed.put(gtk.Label('Tamanho da senha: '), 50, 40)
        self.txtTamanho = gtk.Entry()
        self.txtTamanho.set_size_request(200, 30)
        self.fixed.put(self.txtTamanho, 50, 60)

        self.btGerar = gtk.Button('Gerar senha' )
        self.btGerar.set_size_request(200, 50)
        self.btGerar.connect('clicked', self.gerarSenha)
        self.fixed.put(self.btGerar, 50, 120)

        self.fixed.put(gtk.Label('Senha: ' ), 50, 200)
        self.txtSenha = gtk.Entry()
        self.txtSenha.set_size_request(200, 30)
        self.fixed.put(self.txtSenha, 50, 220)

        #conectando a janela aos destrutores para finalizar o programas
        self.janela.connect('delete_event', self.deleteEvento)
        self.janela.connect('destroy', self.sair)

        #Montra tudo na tala
        self.janela.show_all()
    ##########

    ##########
    ### Função que gera a senha aleatoriamente
    def gerarSenha(self, widget):
        tamanho = self.txtTamanho.props.text
        try:
            tamanho = int(tamanho)
        except:
            texto = 'Digite um numero inteiro no campo "Tamanho da senha" '
            msg = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, texto)
            msg.set_position(gtk.WIN_POS_CENTER)
            msg.run()
            msg.destroy()
        else:
            chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
            senha = ""
            for char in xrange(tamanho):
                senha += choice(chars)
            self.txtSenha.props.text = senha
    ##########

    ##########
    def main(self):
        gtk.main()
    def deleteEvento(self, widget, event):
        return False
    def sair(self, widget):
        gtk.main_quit()
    ##########

if __name__ == "__main__":
    senhaForte = senhaForte()
    senhaForte.main()

Para executar este script é muito simples.

no Linux basta salvar em um arquivo .py e executar no terminal com o comanto

$ python arquivo.py

No Windows salve o arquivo como .pyw e execute com um duplo click, mas é nescessário ter o Python o GTK e o PyGTK instalados na maquina

A pedido do Rodrigo Araujo coloquei uma screenshot

Olá a todos, este é o primeiro de uma série de exemplos de como usar Python+GTK.

Vamos criar agora uma janela simples sem nada dentro

Bem pessoal no Python a identação do código deve estar correta, por exemplo um “TAB” não é igual a 4 espaços então se você simplesmente copiar este código e colar em um editor, talvez ele retorne um erro de identação.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygtk #importa o módulo pygtk
pygtk.require('2.0' ) #requere versão 2.0 ou superior
import gtk

class Janela:
    def __init__(self):
        self.janela = gtk.Window(gtk.WINDOW_TOPLEVEL) #Cria a janela
        self.janela.set_position(gtk.WIN_POS_CENTER) #seta sua posição no centro da tela
        self.janela.set_title('Janela em PyGTK' ) #seta seu título
        self.janela.set_size_request(400, 300) #seta o tamanho da janela
        self.janela.set_resizable(False) #isto bloqueia a janela para mudar seu tamanho

        #conectando a janela aos destrutores para finalizar o programas
        self.janela.connect('delete_event', self.deleteEvento)
        self.janela.connect('destroy', self.sair)

        #Montra tudo na tala
        self.janela.show_all()

    def deleteEvento(self, widget, event, data=None):
        return False

    def sair(self, widget, data=None):
        gtk.main_quit()

    def main(self):
        gtk.main()

if __name__ == "__main__":
    Janela = Janela()
    Janela.main()

O Resultado sera parecido com o da imagem abaixo(parecido porque vai aparecer com o seu tema do GTK)