2011-06-28 42 views
0

我寫一個程序的Tkinter和具有其中顯示未來進入小部件標籤根。訪問Entry組件信息:Tkinter的蟒蛇

EX: 名稱 - >搜索關鍵詞輸入框中

我試圖創建一個從入門wigets(EX:[ ' '用戶輸入', '用戶輸入''])值列表

我已經創建的根的記錄部件,然後有一個功能,得到的值:

def get_user_entries(user_entries): 

    new_search_terms = [] 

    for entry in user_entries: 
     new_search_terms.append(entry.get()) 
    return new_search_terms 

我希望能夠訪問,以在其上運行的另一個Python程序列表稱爲new_search_terms。

我曾嘗試使用該功能的一個按鈕的命令。我試圖在不同的地方綁定按鈕。我試過在不同的地方調用按鈕。我也嘗試創建一個類,其中new_search_terms是一個類變量,但因爲我無法從上面的函數訪問返回的信息,所以更新的類變量沒有成立。在耗盡了互聯網和幾本書之後,我還沒有找到一個例子,其中信息是從Button函數返回而不是打印的。我需要能夠在另一個地方訪問這些信息。

是否有訪問我需要或有在Tkinter的另一種方法來這個我沒有想過的信息的方法嗎?

的代碼,我創建的按鈕:

done = Button(root, text='Done', command= lambda: get_user_entries(user_entries)) 
done.pack() 

下面是創建該條目和標籤的代碼:

def uc_1(original_names, final_names, root): 
    user_entries = [] 
    for index in range(len(original_names)): 
     row = Frame(root) 
     info = Label(row, text = original_names[index]+'->'+final_names[index]) 
     user_entry = Entry(row) 
     row.pack(side=TOP, fill=X) 
     user_entry.pack(side=RIGHT, expand=YES, fill=X) 
     user_entries.append(user_entry) 
     info.pack(side=LEFT) 
    return user_entries 

謝謝!

+0

如果事件綁定有問題,請提供更多源代碼。 – phineas

+0

我創建按鈕的代碼。 'done = Button(root,text ='Done',command = lambda:get_user_entries(user_entries))' done。包() 下面是創建的條目和標籤 DEF uc_1(original_names,final_names,根)中的代碼: \t user_entries = [] \t爲(LEN(original_names))指數在範圍: \t \t行=幀(根) \t \t信息=標籤(行,文本= original_names [指數] + ' - >' + final_names [指數]) \t \t user_entry =項(行) \t \t row.pack(側= TOP,填= X) \t \t user_entry.pack(side = RIGHT,expand = YES,fill = X) \t \t user_entries.append(user_entry) \t \t info.pack(側= LEFT) \t回user_entries –

+0

請用你的問題的編輯按鈕,並使用正確的代碼縮進。 – phineas

回答

0

按鈕命令不會「迴歸」。他們這樣做,但他們返回到事件循環,所以沒有什麼可以處理返回的內容。

話雖這麼說,這是很難知道你在問什麼。你說「我無法從函數中訪問返回的信息」,但我看不出爲什麼沒有。如果你調用它,它不會返回返回語句返回的內容嗎?這似乎是不可能的。

如果配置按鈕,運行「self.OnButton」,並定義「self.OnButton」打電話給你的函數「get_user_entries」,會發生什麼?它不會重新播放任何內容嗎?

這樣看你的按鈕功能不應該返回東西,應該是的東西。它可以通過調用你的功能,獲得它返回的內容,然後調用你想要調用的其他任何東西。