問題找到被點擊了按鈕
我創建一個應用程序,它利用一個人的所有聯繫方式照顧名單的哪個按鈕。記錄存儲在文本文件中,以便第10個索引的第5個索引由用戶給出的每個聯繫人的暱稱組成。我想列出所有這些暱稱作爲按鈕,當用戶選擇任何一個按鈕時,此聯繫人的詳細信息將使用tkSimpleDialog.showinfo('text','contact details')
顯示。
目標
- 決定被點擊的按鈕列表的按鈕。
- 這是我經常面臨一個問題:一個參數傳遞給回調函數
代碼
請注意,此代碼不能完成我想要實現什麼。
buttons = []
inFile = open('test','r')
for i in inFile:
thisrecord = i
buttons.append(Button(self.frame,text='Name: %s' %i[5:10],command=self.show(thisrecord))
inFile.close()
我試過
當我試圖在上面的代碼又是什麼happenned是存儲在文件中的最後一個記錄是每次都顯示,不管按鈕我按。我發現爲什麼會發生這種事情。顯然這些按鈕都是一次創建的,然後每當調用每個按鈕時都會調用回調函數。
如果我的按鈕數量有限,那麼我肯定可以爲每個按鈕定義函數,然後將它們用作回調函數。這就是我在我的應用程序的歡迎頁面上所做的事情,它具有如下按鈕:add new contact
和see details of contact
等等。
但是在這種情況下,記錄數量不固定。所以我在這裏修復並且不知道該怎麼做。
我進一步嘗試使用檢查按鈕,以便無論用戶想要查看哪條記錄,他都可以打勾並按繼續並繼續。但即使這樣做也失敗了,因爲再次檢查按鈕是首先創建的,而不是代碼在那裏運行。
請幫我解決這個問題。
規格
Linux Mint的14
的Python 2.7
Tkinter的8.5
我敢肯定,我已經在過去幾周出現了類似的問題,至少兩次,但在爲他們尋找可能不會成功( –
)你描述的行爲與你展示的片段不匹配,你的代碼的行爲是當按鈕被創建時實際執行回調,並且當點擊按鈕時不執行任何動作 – FabienAndre
是的,我解釋的行爲是我想完成什麼,代碼沒有完成,我將編輯這個問題的效果。謝謝! – IcyFlame