• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

David Pintassilgo

O meu 1º Programa em python! :)

31 mensagens neste tópico

Acham que tenho futuro!? eheh

#Primeiro Programa em python
from Tkinter import *
top = Tk()
janela1 = Frame (top)
janela1.pack()
#Escrever os procedimentos 
def procedimento():
print "sdsds"
#Meter Botao para fechar
botao_sair = Button(janela1, text="CLICA PARA FECHAR", command=janela1.quit)
botao_sair.pack()
#Meter botao para acionar procedimento com uma msgbox
botao_msgbox = Button(janela1, text="TESTE", command=procedimento)
botao_msgbox.pack()
janela1.mainloop()

Bom,.. então o meu problema é o seguinte:

Onde é que eu tenho uma lista ou um sitio simples com informação facilmente acessível para saber  por exemplo:

Como adicionar  textbox's ?

Que mais argumentos posso e como defenir aqui: Button(janela1, text="TESTE", command=procedimento)

Etc...

O meu problema prende-se sempre com o mesmo, onde encontrar informação de forma simples sem grandes explicações nem grandes confusões, pois eu a testar logo vou vendo o que faz o que, não sei se me fasso entender.

Por exemplo, em VB6 eu 'espetava' com um objecto no form e ao escrever o codigo dava-me logo as opções que podia usar e  a partir dai ia testando, inventando etc até aprender, aqui nao o posso fazer, ou seja, precisava tipo,... uma lista de comandos... :D

edit:

Aliás,.. tenho o mesmo problema com php, dai eu começar a compreender melhor o porque de dizerem que VB não é bom para aprender a programar..... :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Como adicionar  textbox's ?

Que mais argumentos posso e como defenir aqui: Button(janela1, text="TESTE", command=procedimento)

Isso ta bem definido. tens aki um exemplo que vez isso a trabalhar e com uma messagebox :

#Primeiro Programa em python v1.1 
from Tkinter import *
top = Tk()
janela1 = Frame (top)
janela1.pack()
#Escrever os procedimentos 
def procedimento():
import tkMessageBox
tkMessageBox.showinfo("Perigo", "mais uma coisa k tu sabes fazer ")
#Meter Botao para fechar
botao_sair = Button(janela1, text="CLICA PARA FECHAR", command=janela1.quit)
botao_sair.pack()
#Meter botao para acionar procedimento com uma msgbox
botao_msgbox = Button(janela1, text="TESTE", command=procedimento)
botao_msgbox.pack()
janela1.mainloop()

Fica bem :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha ta aqui outra versao do teu prog, com tudo o ke sei de MessageBox

#Primeiro Programa em python  v1.2 

from Tkinter import *
import tkMessageBox   #Aqui fora da pra todos os procedimentos

top = Tk()
janela1 = Frame (top)
janela1.pack()

#Escrever os procedimentos

def procedimento():
tkMessageBox.showinfo("Informacao", "mais uma coisa k tu sabes fazer ")

def procedimento2():
tkMessageBox.askokcancel("Pergunta", "Ta fixe ou nao??")

def procedimento3():
tkMessageBox.showerror("Erro", "Mensagem de erro!")

def procedimento4():
tkMessageBox.askyesno("Sim ou Nao", "Tas de ferias?")

#Meter Botao para fechar
botao_sair = Button(janela1, text="CLICA PARA FECHAR", command=janela1.quit)
botao_sair.pack()

#Meter botao para acionar procedimento com uma msgbox
botao_msgbox = Button(janela1, text="TESTE", command=procedimento)
botao_msgbox.pack()

b2 = Button(janela1, text="Teste 2", command=procedimento2)
b2.pack()

b3 = Button(janela1, text="Teste3", command=procedimento3)
b3.pack()

b4 = Button(janela1, text="Teste4", command=procedimento4)
b4.pack()


janela1.mainloop()

:D

Em relação às text-boxes: http://www.pythonware.com/library/tkinter/introduction/x1164-data-entry.htm'>http://www.pythonware.com/library/tkinter/introduction/x1164-data-entry.htm

Aconselho a meteres isto nos favoritos: http://www.pythonware.com/library/tkinter/introduction/ :)

Queria ir dormir mas assim ainda tenho de ir ver isto  :biggrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ehehhee

"Perigo", "mais uma coisa k tu sabes fazer

Rotfl!

vem aí software nacional escrito em python atoda a velocidade escrito pelo david. Força nisso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

LOL,... até eu me safar ocm isto ainda vai demorar, tenoh tido muito pouca disponibilidade mas isto com jeitinho vai lá! :D Acho que python vai ser mesmo uma linguagem fixe de aprender a sério.

:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha adicionei um comando (relief) no teu prog.Serve pra dar o aspeto ao widget  de estar pra dentro ou saido ou liso. Na frame agrupa os botoes

Meti te isto na frame e no 4º botao

#Primeiro Programa em python  v1.3 

from Tkinter import *

top = Tk()
janela1 = Frame (top, relief="sunken", border=1)
janela1.pack(padx=100, pady=100)
janela1.master.title("Titulo da janela")

#Escrever os procedimentos

def procedimento():
tkMessageBox.showinfo("Informacao", "mais uma coisa k tu sabes fazer ")

def procedimento2():
tkMessageBox.askokcancel("Pergunta", "Ta fixe ou nao??")

def procedimento3():
tkMessageBox.showerror("Erro", "Mensagem de erro!")

def procedimento4():
tkMessageBox.askyesno("Sim ou Nao", "Tas de ferias?")

#Meter Botao para fechar
botao_sair = Button(janela1, text="CLICA PARA FECHAR", command=janela1.quit)
botao_sair.pack()

#Meter botao para acionar procedimento com uma msgbox
botao_msgbox = Button(janela1, text="TESTE", command=procedimento)
botao_msgbox.pack()

b2 = Button(janela1, text="Teste 2", command=procedimento2)
b2.pack()

b3 = Button(janela1, text="Teste3", command=procedimento3)
b3.pack()

b4 = Button(janela1, text="Teste4", relief="sunken", border=1, command=procedimento4)
b4.pack()

janela1.mainloop()

Tas a ver - janela1 = Frame (top, relief="sunken", border=1)  - isto é posto sempre na criacao do widget e tem de ter la o border

O relief tem estas opcoes :

relief="sunken", border=1

          ="groove"

          ="raised"

          ="ridge"

          ="flat"

Ito é um apontamento fixe  :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Arranja aí uma screenshot. :P

Das Cabulas? LOL não tem nada que ver, é o mediawiki simplesmente isso. Nem configurações manhosas, nem design nem logotipo sequer, é mesmo só pela facilidade de adicionar/consultar apontamentos pelos 2, tás a ver? :) se quizeres o link para 'calhandrar' é só dizer....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não é isso LOL. Tava a falar do último código que ele afixou :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eheheh... eu tambem uso um wiki para cábulas. É das coisas mais practicas que existem, a tecnologia ao serviço do dia a dia.

Mas eu prefiro o dokuwiki, vem com syntax highlight, supote para namespaces e da para listar as paginas todas existentes.

vivam os wikis!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas eu prefiro o dokuwiki, vem com syntax highlight, supote para namespaces e da para listar as paginas todas existentes.

A MediaWiki só não trás de origem syntax highlighting. :P
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha já agora que se está a falar no assunto, eu precisava de alguem que esteja habituado a configurar mediawiki para me dar uam ajuda, é que assim em 5 minutos fasso o que quero, se tiver de andar á procura e a testar e experimentar e tal perco 1 hora e ainda me arrisco a fazer alguma borrada e lixar aquilo tudo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom,... estou aqui com um problema:

Tenho qualquer coisa como:

def gravar():
t_nome = Entry(janela2)
t_nome.pack()
b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome))
b_mandar.pack()
janela2.mainloop()

def enviar(nome):
print nome

O que eu estou a fazer mal na parte de enviar o valor de t_nome do gravar para o enviar?

Não sei se me expliquei.... :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código que ali está vai imprimir na consola e não no GUI.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas vai imprimir o que? supostamente o que o utilizador colocar na cx de texto, certo? Errado! esta-me a escrever (na consola) una catrefada de numeros sem significado aparente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desculpa-me a ignorancia pois nunca usei o tk.

Mas estás a aplicaro o método pack() ao objecto t_nome que depois vais imprimir.

O pack() concerteza está  a alterar-te o conteudo de t_nome para qualquer coisa inintiligível, quase que apostaria que estás a olhar para hexadecimal certo?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tu estás a fazer print ao t_nome, um objecto. Vai à referência do Tkinter e vê qual é o método da caixa de texto que contem o que lá está escrito. :)

EDIT: t_nome.get() devolve-te o conteúdo. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso! Há-de ser qq coisa assim, mas mesmo assim não rulla :)

Bastaria colocar

b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome.get()))
#em vez de:
b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome))

Certo? Mas não imprime nada agora.... :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso! Há-de ser qq coisa assim, mas mesmo assim não rulla :)

Bastaria colocar

b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome.get()))
#em vez de:
b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome))

Certo? Mas não imprime nada agora.... :S

experimenta imprimir t_nome.get() na consola para ver o que lá está

print t_nome.get()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

def gravar():
t_nome = Entry(janela2)
t_nome.pack()
b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome))
b_mandar.pack()
janela2.mainloop()

def enviar(nome):
print nome.get()

Experimenta assim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

NADA,.. grrrrrr já estou a desesperar! E Ainda por cima o que mais me enerva é que de certeza que vai.se a ver e é uma burrice qq minha de uma virgula ou de uma 'merdice' qualquer assim do genero,... é o costume,... farto-me de sofrer pá.. :S LOL

Ora aqui está o código todinho como tenho aqui agora:

import MySQLdb
from Tkinter import *

def ler():
db = MySQLdb.connect(host="SQL06.FreeMySQL.net",user="dpintas", passwd="****", db="python")
cursor = db.cursor()
cursor.execute("SELECT * FROM tabela")
result = cursor.fetchall()
for record in result:  print record[0] , "-->", record[1]

def gravar():
topp = Tk()
topp.minsize(width=350, height=200)
janela2 = Frame(topp)
janela2.pack()
l_nome = Label(janela2, text="Nome:")
l_idade = Label(janela2, text="Idade:")
t_nome = Entry(janela2)
t_idade = Entry(janela2)
l_nome.pack()
t_nome.pack()
l_idade.pack()
t_idade.pack()
b_mandar = Button(janela2, text="ENVIAR", command=enviar(t_nome))
b_mandar.pack()
janela2.mainloop()

def enviar(nome):
print nome




top = Tk()
top.minsize(width=500, height=250)
janela = Frame(top)
janela.pack()
b_ler = Button(janela, text="LER DADOS", command=ler)
b_ler.pack()
b_gravar = Button(janela, text="GRAVAR DADOS", command=gravar)
b_gravar.pack()
b_sair = Button(janela, text="SAIR!", command=janela.quit)
b_sair.pack()


janela.mainloop()

Só a pass é que está difrente, mas se quiserem tb é só dizer que mando por pm, mas para o caso não é preciso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
import MySQLdb
from Tkinter import *

def ler():
db = MySQLdb.connect(host="SQL06.FreeMySQL.net",user="dpintas", passwd="****", db="python")
cursor = db.cursor()
cursor.execute("SELECT * FROM tabela")
result = cursor.fetchall()
for record in result:  print record[0] , "-->", record[1]

def gravar():
topp = Tk()
topp.minsize(width=350, height=200)
janela2 = Frame(topp)
janela2.pack()
l_nome = Label(janela2, text="Nome:")
l_idade = Label(janela2, text="Idade:")
t_nome = Entry(janela2)
t_idade = Entry(janela2)
l_nome.pack()
t_nome.pack()
l_idade.pack()
t_idade.pack()
b_mandar = Button(janela2, text="ENVIAR", command=enviar)
b_mandar.pack()
janela2.mainloop()

def enviar(nome):
print t_nome.get()




top = Tk()
top.minsize(width=500, height=250)
janela = Frame(top)
janela.pack()
b_ler = Button(janela, text="LER DADOS", command=ler)
b_ler.pack()
b_gravar = Button(janela, text="GRAVAR DADOS", command=gravar)
b_gravar.pack()
b_sair = Button(janela, text="SAIR!", command=janela.quit)
b_sair.pack()


janela.mainloop()

Vê assim. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora