Reputation: 31
everybody, I am having problems getting the data out of all my entries, when I try to execute the program it runs but will not give me the information I require it to actually work.
I the problems could be in the get() method of tkinter or any idea where the problem is in the code? I am actually new in this, I have like a month now programming.
#Importing all files
from tkinter import *
import tkinter as tk
import os
#The command we will use to close the window
def destroy():
top.destroy()
#This is the text we want to display
def texto():
greets = ("Welcome " + str(Name) + "\n ")
contact1 = ("We will contact you to " + str(Email) + "\n ")
contact2 = ("If not possible to reach you, we will try with your phone number: " + str(Phone) + "\n ")
contact3 = ("Your desired salary: " + str(Salary) + " will be taken in count \n ")
contact4 = ("This information will be linked to your ID: " + str(ID) + " in our system \n ")
return greets, contact1, contact2, contact3, contact4
#Function created to active the text once the information is filled
def activar():
#Displaying the text in another window
window = tk.Tk()
window.title("Application submitted")
Result = tk.Label(window, text = texto)
Result.pack()
#Creating the window
top = tk.Tk()
#Size of the window
top.geometry("400x300")
#Title of the previous window
top.title("Application form")
#Labels of the window
greeting = tk.Label(top, text = "Please enter the information asked for below"). place(x =30,y = 10)
name = tk.Label(top, text = "Name").place(x = 30,y = 50)
email = tk.Label(top, text = "Email").place(x = 30, y = 90)
phone_number = tk.Label(top, text = "Phone Number").place(x = 30, y = 130)
salary = tk.Label(top, text = "Expected salary").place(x = 30, y = 170)
identification = tk.Label(top, text= "National certified ID").place(x = 30,y = 210)
#Botton of the window
submit = tk.Button(top, text = "Submit",activebackground = "pink", activeforeground = "blue", command= activar).place(x = 320, y = 250)
#Entries
e1 = tk.Entry(top)
e1.place(x = 80, y = 50)
e2 = tk.Entry(top)
e2.place(x = 80, y = 90)
e3 = tk.Entry(top)
e3.place(x = 120, y = 130)
e4 = tk.Entry(top)
e4.place(x = 120, y = 170)
e5 = tk.Entry(top)
e5.place(x = 160, y = 210)
#Getting the information of each entry
Name = e1.get()
Email = e2.get()
Phone = e3.get()
Salary = e4.get()
ID = e5.get()
#Executing the window
top.mainloop()
Upvotes: 0
Views: 112
Reputation: 31
After doing some research it is actually working now!! Thanks for all the answers you gave so quickly!
#Importing all modules
from tkinter import *
import tkinter as tk
import os
#This is the text we want to display
def texto():
greets = ("Welcome " + str(Name) + "\n ")
contact1 = ("We will contact you to " + str(Email) + "\n ")
contact2 = ("If not possible to reach you, we will try with your phone number: " + str(Phone) + "\n ")
contact3 = ("Your desired salary: " + str(Salary) + " will be taken in count \n ")
contact4 = ("This information will be linked to your ID: " + str(ID) + " in our system \n ")
return greets + contact1 + contact2 + contact3 + contact4
#Function created to active the text once the information is filled
def activar():
#Displaying the text in this same window
window = tk.Tk()
window.geometry("200x200")
window.title("Application submitted")
Result = tk.Label(window, text = texto())
Result.pack()
#Get values of the entries
def get_values():
global Name
global Email
global Phone
global Salary
global ID
Name = String1.get()
Email = String2.get()
Phone = String3.get()
Salary = String4.get()
ID = String5.get()
activar()
#Creating the window
top = tk.Tk()
#Size of the window
top.geometry("400x300")
#Title of the previous window
top.title("Application form")
#Labels of the window
greeting = tk.Label(top, text = "Please enter the information asked for below"). place(x =30,y = 10)
name = tk.Label(top, text = "Name").place(x = 30,y = 50)
email = tk.Label(top, text = "Email").place(x = 30, y = 90)
phone_number = tk.Label(top, text = "Phone Number").place(x = 30, y = 130)
salary = tk.Label(top, text = "Expected salary").place(x = 30, y = 170)
identification = tk.Label(top, text= "National certified ID").place(x = 30,y = 210)
#Botton of the window
submit = tk.Button(top, text = "Submit", fg = 'red',activebackground = "pink", activeforeground = "blue", command= get_values).place(x = 320, y = 250)
#Strings of each entry
String1 = tk.StringVar(top)
String2 = tk.StringVar(top)
String3 = tk.StringVar(top)
String4 = tk.StringVar(top)
String5 = tk.StringVar(top)
#Entries
e1 = tk.Entry(top, textvariable = String1)
e1.place(x = 160, y = 50)
e2 = tk.Entry(top, textvariable = String2)
e2.place(x = 160, y = 90)
e3 = tk.Entry(top, textvariable = String3)
e3.place(x = 160, y = 130)
e4 = tk.Entry(top, textvariable = String4)
e4.place(x = 160, y = 170)
e5 = tk.Entry(top, textvariable = String5)
e5.place(x = 160, y = 210)
#Executing the window
top.mainloop()
Upvotes: 1
Reputation: 1500
On line 34, the texto function should be called with parentheses like this:
Result = tk.Label(window, text = texto ())
Then, your assignment to Name, Email, etc should be inside the texto function.
Upvotes: 0