Python Forum
Can't Get Entry Var in Tkinter
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Can't Get Entry Var in Tkinter
#1
class Classe1():

    def button_label(self, chosen_row, textoescrito, variavel):
        lb1 = Label(frame2, text=textoescrito, bg=color2, font=('Roboto', 11))
        lb1.grid(row=chosen_row, column=2, padx=2, pady=2)
        self = Entry(frame2, width=50, font=('Roboto', 11), textvariable=variavel)
        self.grid(row=chosen_row + 1, column=2, padx=2, pady=2)

    def button_label2(self, chosen_row, textoescrito, variavel):
        lb1 = Label(frame2, text=textoescrito, bg=color2, font=('Roboto', 11))
        lb1.grid(row=chosen_row, column=3, padx=2, pady=2)
        self = Entry(frame2, width=50, font=('Roboto', 11), textvariable=variavel)
        self.grid(row=chosen_row + 1, column=3, padx=2, pady=2)

    def get1(self):
        self = StringVar.get()


text1 = Classe1()
text1.button_label(3, 'Razão Social:', 'razao')
text2 = Classe1()
text2.button_label(5, 'Nome Fantasia:', 'nomefantasia')
text3 = Classe1()
text3.button_label(7, 'Endereço:', 'endereco')
text4 = Classe1()
text4.button_label(9, 'Responsável Legal:', 'res_legal')
text5 = Classe1()
text5.button_label(11, 'Telefone:', 'telefone')
text6 = Classe1()
text6.button_label(13, 'CNPJ:', 'cnpj')
text7 = Classe1()
text7.button_label2(3, 'Data:', 'data')
text8 = Classe1()
text8.button_label2(5, 'Email:', 'email')
text9 = Classe1()
text9.button_label2(7, 'Horário de funcionamento:', 'horario')
text10 = Classe1()
text10.button_label2(9, 'Área total(m3):', 'areatotal')
text11 = Classe1()
text11.button_label2(11, 'Cpf do responsável legal', 'cpf1')
text12 = Classe1()
text12.button_label2(13, 'Responsável pela implantação:', 'res_imp1')

app.mainloop()
When I try to use 'razao' etc, it gives me this code:
Error:
Exception in Tkinter callback Traceback (most recent call last): File "c:\users\joaog\appdata\local\programs\python\python38-32\Lib\tkinter\__init__.py", line 1883, in __call__ return self.func(*args) File "GUI.py", line 21, in clicked doc.add_paragraph(res_legal, style='Heading 1') NameError: name 'res_legal' is not defined
Reply
#2
textvariable must be a tkinter.StringVar, not a raw string.

you can remedy this by declaring a string var in button_label, seting it from the argument variavel
and using the new StringVar as the textvariable (cod not tested):
class Classe1():
    def __init__(self):
        self.svar = StringVar()

    def button_label(self, chosen_row, textoescrito, variavel):
        self.svar.set(variavel)
        lb1 = Label(frame2, text=textoescrito, bg=color2, font=('Roboto', 11))
        lb1.grid(row=chosen_row, column=2, padx=2, pady=2)
        self = Entry(frame2, width=50, font=('Roboto', 11), textvariable=self.svar)
        self.grid(row=chosen_row + 1, column=2, padx=2, pady=2)
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Tkinter] Making entry global in tkinter with multiprocessing luckyingermany 2 2,284 Jan-21-2022, 03:46 PM
Last Post: deanhystad
  Tkinter Exit Code based on Entry Widget Nu2Python 6 2,878 Oct-21-2021, 03:01 PM
Last Post: Nu2Python
  [Tkinter] Update variable using tkinter entry methon drSlump 6 5,097 Oct-15-2021, 08:01 AM
Last Post: drSlump
  Tkinter | entry output. Sap2ch 1 1,951 Sep-25-2021, 12:38 AM
Last Post: Yoriz
  .get() from generated Entry widgets in tkinter snakes 4 4,158 May-03-2021, 11:26 PM
Last Post: snakes
  Entry Validation in tkinter shahulvk 4 16,035 Oct-28-2020, 10:12 PM
Last Post: joe_momma
  [Tkinter] Getting Input from Tkinter Entry juliabrushett 6 21,221 May-30-2020, 03:29 PM
Last Post: Larz60+
  Converting Entry field value to integer in tkinter scratchmyhead 2 4,886 May-11-2020, 03:41 PM
Last Post: scratchmyhead
  [Tkinter] Tkinter adding entry values scratchmyhead 1 2,165 May-04-2020, 05:21 AM
Last Post: Yoriz
  [Tkinter] Entry box not showing 2 decimal places Chuck_Norwich 3 5,618 Apr-24-2020, 05:28 PM
Last Post: deanhystad

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020