Как я могу напечатать значения Entry () в tkinter? - PullRequest
0 голосов
/ 08 октября 2019

Я просто пытаюсь напечатать значения полей ввода, и он говорит мне, что он не определен. Я давно смотрю онлайн. Последнее, что я пытался добавить self в качестве параметра add_student, но это не сработало.

Это код

from tkinter import *

class window(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.master = master
        self.widgets()

    def add_student(self):
        print(f"Student's name (first, last): {self.fname_textbox}, {self.lname_textbox}")

    def widgets(self):

        self.master.title("Student Test Score & Grade")
        self.master.minsize(200,200)

        """ Labels """
        # First name
        self.fname_label = Label(root, text='First Name: ')
        self.fname_label.grid(row=0, column=0, padx=5, pady=5)

        # Last Name
        self.lname_label = Label(root, text='Last name: ')
        self.lname_label.grid(row=1, column=0, padx=5, pady=5)

        """ Entry boxes """
        # First Name
        self.fname_textbox = Entry(root, width=30)
        self.fname_textbox.grid(row=0, column=1, padx=5)

        # Last name
        self.lname_textbox = Entry(root, width=30)
        self.lname_textbox.grid(row=1, column=1, padx=5)

        """ Buttons """
        # Add Button
        self.add_btn = Button(root, text="Add Student", command=self.add_student).grid(row=4, column=2, padx=2, pady=2)

if __name__=="__main__":
    root = Tk()
    root.resizable(width=False, height=False)
    app = window(root)
    root.mainloop()

Он печатает это

Student's name (first, last): .!entry, .!entry2

Вместо: Student's name (first, last): John, Doe

Что это значит?

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Вам необходимо получить значения записей, чтобы использовать их в своем заявлении на печать. Для этого вы должны указать:

firstname = self.fname_textbox.get() 
lastname = self.1fname_textbox.get()

перед печатью и использовать эти значения в своем заявлении на печать.

0 голосов
/ 08 октября 2019

Ах, попробуйте что-то вроде этого:

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()
...