Jump to content
Fórum Script Brasil
  • 0

Pegar String De Um Entry


Paulo Pimenta
 Share

Question

Ola galera sou iniciante em python e não estou conseguindo pegar a string de um entry, o python retorna o erro de que o objeto não tem attribute get

from Tkinter import *

from process import *

class processInterface:

def __init__(self, master):

self.labelTitle = Label(master, text="Title").grid(row=0, sticky=W)

self.labelDescription = Label(master, text="Description").grid(row=1, sticky=W)

self.entryTitle = Entry(master).grid(row=0,column=1)

self.entryDescription = Entry(master).grid(row=1,column=1)

self.buttonSave = Button(master, text="Save", command=self.save).grid(row=2,columnspan=2, sticky=W+E+N+S)

#grid_forget() or grid_remove() remove o widget porem pode aparecer de novo

def save(self):

print self.entryTitle.get()

Considerem que tudo esteja identado normalmente

Obrigado

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

bom, penso que com Entry funcione em 3 passos:

#-------1 - você tem que fazer uma variavel no Tkinter para ele trabalhar com string:

self.titulo=StringVar()

#--------2 - qd você for criar a entrada, diz que string ela ira se associar para manipulacao:

self.addTitulo=Tkinter.Entry(master, textvariable=self.titulo).grid(......

#--------3 - qd quiser obter o que esta escrito na entrada:

stringPego=self.titulo.get()

olha fiz esse exemplo para você:

import Tkinter

root=Tkinter.Tk()

nome=Tkinter.StringVar()

Tkinter.Entry(root,textvariable=nome).pack()

def pegar():

------- a=nome.get()

------- print a

Tkinter.Button(root,text='obter',command=pegar).pack()

root.mainloop()

falou,

duvidas pode mandar, não sei muito, mas sabendo...compartilhar é o caminho do que é livre!

([email protected])

Link to comment
Share on other sites

  • 0

então tentei esse metodo e não da certo, o StringVar com () ele não aceita, então usei sem, dai funfou, porem na hora de dar o get na variavel StringVar ele acusa um erro de unbound......

não é possivel, deve ter um jeito mais facil, em python é tudo mais facil, porque não simplesmente dar um get e pronto..hehe

alguém tem alguma dica?

vlw

Link to comment
Share on other sites

  • 0

from Tkinter import *

from process import *

class customerInterface:

value=None

nameEntry = None

def __init__(self, master):

self.value = StringVar()

self.nameLabel = Label(master, text="Name:").grid(row=0, sticky=W)

self.addressLabel = Label(master, text="Address:").grid(row=1, sticky=W)

self.phoneLabel = Label(master, text="Phone:").grid(row=2, sticky=W)

self.mobileLabel = Label(master, text="Mobile:").grid(row=3, sticky=W)

self.cpfLabel = Label(master, text="CPF").grid(row=4, sticky=W)

self.rglabel = Label(master, text="RG").grid(row=5, sticky=W)

self.nameEntry = Entry(master, textvariable=self.value).grid(row=0,column=1)

self.addresEntry = Entry(master).grid(row=1,column=1)

self.phoneEntry = Entry(master).grid(row=2,column=1)

self.mobileEntry = Entry(master).grid(row=3,column=1)

self.cpfEntry = Entry(master).grid(row=4,column=1)

self.rgEntry = Entry(master).grid(row=5,column=1)

self.buttonSave = Button(master, text="Save", command=self.save).grid(row=6,columnspan=2, sticky=W+E+N+S)

#grid_forget() or grid_remove() remove o widget porem pode aparecer de novo

print self.value.get()

def save(self):

print self.value.get()

Agora funciona, porem não imprime nada, deve ser alguma problema relacinado a classe, alguém consegue identifica?:??

Link to comment
Share on other sites

  • 0

Ah solucao que funcionou foi:

def __init__(self, master):

self.nameEntry = Entry(master)

self.contents = StringVar()

self.nameEntry["textvariable"]=self.contents

self.nameEntry.pack()

self.nameEntry.grid(row=0,column=1)

self.buttonSave =

Button(master,text="Save",command=self.save).grid(row=9,columnspan=2, sticky=W+E+N+S)

def save(self):

print self.nameEntry.get()

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...