我正在嘗試從 tkinter 的文本框中獲取用戶輸入。我不能使用條目,因為我不能向它們添加填充,并且因為我不能讓它們與 GUI 其余部分的美感相匹配。
所以,我用bind回車鍵,一次清除文本框,然后列印內容。
這是我的代碼:
customInput = Text(redCanvas,bg=yellow,highlightthickness=0,padx=10,pady=10,font=font)
customInput.bind('<Return>', lambda e: e.widget.delete('1.0','end'))
customInput.bind('<Return>', lambda e: print(e.widget.get('1.0', 'end')))
customInput.place(relx=0.5,rely=0.925,relheight=0.075,relwidth=0.75,anchor=CENTER)
問題是舊輸入沒有被洗掉:我可以在 中向上滾動到它customInput,當我按下回車鍵時,所有舊輸入也會被列印出來。
例子:
input: Input1
>> Input1
input: Input2
>> Input1
>> Input2
input: Input3
>> Input1
>> Input2
>> Input3
我可能遺漏了一些非常明顯的東西(發生在我身上),如果這個問題是重復的,我深表歉意,但我嘗試過的任何東西都沒有。
答案表示贊賞。
uj5u.com熱心網友回復:
第二個系結陳述句覆寫第一個。因此,文本框的內容永遠不會被洗掉,并且輸出是累積的。
您需要先列印內容,然后將其洗掉,如下所示:
customInput = Text(redCanvas,bg=yellow,highlightthickness=0,padx=10,pady=10,font=font)
customInput.bind('<Return>', lambda e: (print(e.widget.get('1.0', 'end')), e.widget.delete('1.0','end')))
customInput.place(relx=0.5,rely=0.925,relheight=0.075,relwidth=0.75,anchor=CENTER)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/453973.html
