2016-07-15 76 views
0

我在嘗試獲取輸入文本並將它們分配給Python中的變量時遇到了一些問題。這裏是我的代碼:將用戶輸入分配給Python中的變量

#!/usr/bin/python3 

from tkinter import * 
fields = 'Last Name', 'First Name', 'Job', 'Country' 

def fetch(entries): 
    for entry in entries: 
     field = entry[0] 
     text = entry[1].get() 
     print('%s: "%s"' % (field, text)) 

def makeform(root, fields): 
    entries = [] 
    for field in fields: 
     row = Frame(root) 
     lab = Label(row, width=15, text=field, anchor='w') 
     ent = Entry(row) 
     row.pack(side=TOP, fill=X, padx=5, pady=5) 
     lab.pack(side=LEFT) 
     ent.pack(side=RIGHT, expand=YES, fill=X) 
     entries.append((field, ent)) 
    return entries 

if __name__ == '__main__': 
    root = Tk() 
    ents = makeform(root, fields) 
    root.bind('<Return>', (lambda event, e=ents: fetch(e))) 
    b1 = Button(root, text='Show', 
      command=(lambda e=ents: fetch(e))) 
    b1.pack(side=LEFT, padx=5, pady=5) 
    b2 = Button(root, text='Quit', command=root.quit) 
    b2.pack(side=LEFT, padx=5, pady=5) 
    root.mainloop() 

當我跑這個,它設法打印出名字,工作和國家分別。但我正在使用循環來循環條目。我在考慮是否有可能得到它們中的每一個並分配給一個變量,因爲我需要這些值來執行一些驗證和SQL語句。

在此先感謝。

+0

是的,這是可能的。那麼你的問題是什麼? –

+0

我想獲取每個字段的輸入並將它們存儲到不同的變量中。 – hyperfkcb

+0

仍然沒有問題。無論如何,嘗試在給定代碼 –

回答

0

使entries成爲全局變量。如果entries中有4個以上的字段,可能不是使用每個項目有2個字段(字段和文本)的嵌套列表,則應使每個項目包含四個字段(名,姓,工作,國家)。通過這種方式,entries中的每個條目都將具有一個項目中的所有數據。您可以對四個字段的順序進行硬編碼,並相應地訪問entries以驗證或SQL語句:entries[x][y],其中x指示數據的「行」,y將指示確切字段(0:姓氏,1:名字, 2:工作,3:國家)。

你甚至不需要你的fetch(entries)函數,除非你還想打印出來。

希望這會有所幫助。快樂的編碼!

相關問題