2016-02-29 76 views
1

菜鳥問題在這裏,但我正在用一個GUI做一個非常基本的程序。它採用法語單詞,並將它們轉換爲英語(在某種程度上)如何分解成列表?

from tkinter import * 
import webbrowser 
def show_entry_fields(): 
    website = "www.wordreference.com/fren/%s" % (e1.get()) 
    webbrowser.open(website) 

master = Tk() 
Label(master, text="French Word").grid(row=0) 

e1 = Entry(master) 

e1.grid(row=0, column=1) 

Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4) 
Button(master, text='Show', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4) 

mainloop() 

問題是,如果我在多個字輸入,它開闢了

www.wordreference.com/fren/Bonjour%20Avoir 

我已經試過

e1 = [Entry(master)] 

但是,這給我錯誤,因爲

e1 = Entry[(master)] 

回答

3

您需要更改show_entry_fields和使用strsplit() method

def show_entry_fields(): 
    # assuming the words are separated by one or more spaces 
    word_list = e1.get().split() # break the content of e1 into a list of words 
    for word in word_list: 
     website = "www.wordreference.com/fren/%s" % word 
     webbrowser.open(website) 

如果你想要的話,以比其他空間的東西分開,那麼你需要的分隔符傳遞到split。例如,如果單詞之間用逗號分隔空格(如'hello, world, bye'),則split調用應爲word_list = e1.get().split(', ')


至於你的錯誤,e1 = [Entry(master)]使得e1一個名單,其中沒有一個get()方法。所以當你撥打show_entry_fields時你會得到一個AttributeErrore1 = Entry[(master)]不會生成Entry實例,但正在嘗試索引到Entry(該類),這不是您可以編入索引的那種類型。所以這應該立即提高TypeError