2014-09-11 5 views
0

J'ai créé une fenêtre contextuelle qui demandait l'entrée et le nombre d'entrées dépendait des informations fournies.Comment obtenir toutes les valeurs d'entrée disponibles

self.e = Entry(self.top, bd = 5) 
self.e.grid(column = 1, row = 0) 
row = 2 
for d in extra: 
    self.e2 = Entry(self.top, bd = 5) 
    self.e2.grid(column = 1, row = row) 
    row = row + 1 

def ok(self): 
    new = self.e.get().strip() 

La fonction ok est appelée par un bouton, puis elle renvoie les valeurs. Comment renvoyer une liste de valeurs à partir d'un nombre inconnu d'entrées?

Python 2.7

Répondre

2

Normalement, vous mettriez les entrées dans une liste:

from Tkinter import * 

class App(object): 

    def __init__(self, top): 
     self.top = top 
     self.ok_button = Button(self.top, text='OK', command=self.ok) 
     self.make_entries() 

    def make_entries(self): 
     self.entries = [] 
     for d in extra: 
      e2 = Entry(self.top, bd = 5) 
      e2.grid(column = 1, row = row) 
      self.entries.append(e2) 
      row += 1 

    def ok(self): 
     values = [e.get().strip() for e in self.entries] 

root = Tk() 
app = App(root) 
root.mainloop() 
+0

Je ne parviens pas à mettre en œuvre cela. Quand dois-je appeler la fonction make_entries? Et qu'est-ce qui permet à l'entrée de stocker dans self.entries? –

+0

@JamestheGreat - Désolé, j'ai oublié d'ajouter 'self.entries.append (e2)' (D'oh!) – mgilson

+0

Est-ce que "object" est une variable que je peux mettre? Ou est-ce une variable intégrée? –

Questions connexes