-1

So i have this code below. Ive tried a various form of how to get to work the StringVar, but nothing happened. And thats why a turned to you oh, god of stackoverflow. Pls show me how to make it throught. I have an input in Entry1 and I need to get this input into an sql ( ive cut it out because of its uninportant) and return the value of it and write it into Entry1 insted of the original input. Please Lord of SO halp me!

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

import os
import time
import mysql.connector
import getpass
import smtplib
from email.mime.text import MIMEText
global atado_kartya_input
global atvevo_kartya_input
from PIL import Image, ImageTk
#from Tkinter import Tk, Text, TOP, BOTH, X, N, LEFT
from Tkinter import * 
from Tkinter import Tk as tk
from ttk import Frame, Style, Entry, Label

class Example(Frame):
    def __init__(self, parent):

        Frame.__init__(self, parent)

        self.parent = parent
        self.initUI()
        self.addbutton()

    def addbutton(self):        
        b = Button( self, text= "Get!", width = 10, command= self.callback)
        b.pack()

    def callback(self): 
        #07561847   
        #tk()
        atvevoText = Frame.StringVar()
        atvevoText = atvevo(self.entry1.get()) #from the "atvevo" function it gets a name of a worker form an SQL statement
        self.entry1.delete(0, 'end')
        self.entry1.insert(0, atvevoText)
        #self.entry1 = Entry(self, textvariable = atvevoText )

        print(atvevoText)

    def initUI(self):
        self.parent.title("Pozi")
        self.pack(fill = BOTH, expand=True)

        frame1 = Frame(self)
        frame1.pack(fill=X)

        lbl1 = Label(frame1, text = "ĂtadĂł kártyája", width = 30)
        lbl1.pack(side = LEFT, padx=5, expand=True)

        self.entry1 = Entry(frame1)
        self.entry1.pack(side = LEFT, padx=5, expand=True)

        frame2 = Frame(self)
        frame2.pack(fill=X)

        lbl2 = Label(frame2, text = "ĂrvevĹ‘ kártyája", width = 30)
        lbl2.pack(side = LEFT, padx=5, expand=True)

        entry2 = Entry(frame2)
        entry2.pack(side = LEFT, padx=5, expand=True)

        frame3 = Frame(self)
        frame3.pack(fill=X)

        lbl3 = Label(frame3, text = "ĂrvevĹ‘ kártyája", width = 30)
        lbl3.pack(side = LEFT, padx=5, expand=True)

        entry3 = Entry(frame3)
        entry3.pack(side = LEFT, padx=5, expand=True)

        frame4 = Frame(self)
        frame4.pack(fill=BOTH, expand = True)

        lbl4 = Label(frame4, text = "Title", width = 30)
        lbl4.pack(side = LEFT, anchor=N, padx=5, pady=5)

        txt = Text(frame4)
        txt.pack(fill = BOTH, padx=5, pady=5, expand=True)      

         #Style().configure("TFrame", backgroung = "#333") # tframe háttérszinét beállítjuk90%  
def main():

    root = Tk()
    root.geometry("550x450+300+300") # width x heigth + x + y (on screen)
    app = Example(root)
    root.mainloop()  


if __name__ == '__main__':
    main()      

Update

I have to change in a way like that:

    def callback(self): 
        #07561847   
        #tk()
        atvevoText = StringVar()
        number = self.entry1.get()
        self.entry1.delete(0, 'end')
        #self.entry1.insert(0, atvevoText)
        self.entry1 = Entry(self, textvariable = atvevoText )
        atvevoText = atvevo(number)             
        print(atvevoText)

*And with it i got nothing to back nor error nor the value :( *

Daniel
  • 45
  • 2
  • 9

1 Answers1

1

Change

Frame.StringVar()

to

StringVar()

Since StringVar is a class inside Tkinter(not tested just googled)

itzMEonTV
  • 19,851
  • 4
  • 39
  • 49