2017-07-07 2 views
0

Je souhaite capturer les données dans le champ d'entrée de la deuxième fenêtre définie sous sortie. Lorsque je clique sur submit, j'obtiens le message suivant: AttributeError: 'L'objet NoneType n'a aucun attribut' get '.Tkinter Entry Field Capture AttributeError:

Je pense que cela devrait être une solution facile et ne comprends pas pourquoi je ne peux pas capturer les données du champ de saisie?

from tkinter import * 
import xlsxwriter 

class MyFirstGUI: 
    def __init__ (self, master): 
     master.title("Main") 
     master.geometry("400x400+230+160") 

     button1 = Button(master, text="1", command= self.output).grid(row=0, column=0) 


    def output(self): 

     cw1= Toplevel(root) 
     cw1.title("cw1") 
     cw1.geometry("400x300+160+160") 

     self.b2 = Button(cw1, text="Submit",command = self.write_to_xlsx).grid(row=0, column=2) 
     self.l2 = Label(cw1, text="New Specimen").grid(row=0, column=0) 

     self.e2 = Entry(cw1).grid(row=0, column=1) 


    def write_to_xlsx(self): 

     workbook = xlsxwriter.Workbook('tkintertest19.xlsx') 
     worksheet = workbook.add_worksheet() 
     worksheet.write_string('C1', self.e2.get()) 
     workbook.close() 


root = Tk() 
my_gui = MyFirstGUI(root) 
root.mainloop() 

Répondre

1

Ce que vous devez faire est de diviser la ligne

self.l2 = Label(cw1, text="New Specimen").grid(row=0, column=0) 

dans

self.l2 = Label(cw1, text = "New Specimen") 
self.l2.grid(row=0, column=0) 

non-intuitif que cela puisse paraître, les grid/pack/place fonctions retour None, donc le shebang entier (Label().grid()) renvoie None. La solution consiste simplement à la diviser pour que vous obteniez la bonne chose lorsque vous utilisez .get().

+0

La raison pour laquelle @heather scinde la ligne est que la grille (...) à la fin de la commande Label renvoie en réalité None, alors que la commande Label (...) renvoie l'objet label - ce que vous voulez . –

+0

@RonNorris, déjà édité pour l'ajouter dans (avant votre commentaire); Je m'excuse de ne pas avoir mis ça au point. – heather

+0

@heather Merci! Correction facile – applestooragnes