我想知道是否有人知道如何將按鈕點擊保存到文本文件中。例如,如果一個按鈕上有文字「hello」,它被按下;然後將其保存在文本文件中以顯示按下「hello」按鈕有沒有辦法保存哪些按鈕被壓入文本文件
0
A
回答
0
不,沒有內置任何內容。您必須添加自定義綁定。
例如,您可以在Button
類上添加類綁定。例如:
root.bind_class("Button", "<ButtonPress-1>", log_buttonpress, add="+")
然後,您可以定義一個名爲log_buttonpress
方法,它看起來是這樣的:
def log_buttonpress(self, event):
with open("/tmp/log.txt", "a+") as f:
f.write("=> " + event.widget.cget("text") + "\n")
當然,這隻會捕捉鼠標點擊。它不會捕獲使用鍵盤點擊的按鈕。此外,在釋放按鈕之前,不會調用該按鈕的命令,因此可能會記錄被點擊但未實際激活的按鈕。這些問題是可以解決的,但需要更多的代碼。這只是顯示了一般概念,而不是剪切和粘貼解決方案。
另一種創建自己的子類Button
並將此特殊綁定添加到每個實例的方法。通過使用綁定標籤,您可以爲每個實例添加一個特殊標籤,然後您只需爲該標籤設置一個綁定即可。
例如:
class MyButton(tk.Button):
def __init__(self, *args, **kwargs):
tk.Button.__init__(self, *args, **kwargs)
bindtags = list(self.bindtags())
bindtags.insert(1, "MyButton")
self.bindtags(tuple(bindtags))
@classmethod
def log_button(cls, event):
with open("/tmp/junk.txt", "a+") as f:
f.write("?> " + event.widget.cget("text") + "\n")
...
root = tk.Tk()
root.bind_class("MyButton", "<ButtonRelease-1>", MyButton.log_button)
b1 = MyButton(...)
b2 = MyButton(...)
如果使用`命令=`或`綁定()`與每一個按鈕,那麼您可以分配一些函數來做到這一點
+0
謝謝:)這對我有很大的幫助:) – Supertraff
相關問題
- 1. 有沒有辦法找出TButtonGroup的哪個按鈕被點擊?
- 2. 有沒有辦法將shell腳本的輸出保存到文本文件中?
- 3. 有沒有辦法將文本文件放入數據庫(SQLite)?
- 4. 對於svn,有沒有辦法顯示哪些文件位於舊版本?
- 5. 鉻擴展 - 有沒有辦法永久保存文件?
- 6. asp.net mvc - 有些文件沒有被壓縮
- 7. HTML:當頁面被保存有圖像/文件沒有保存
- 8. 數據沒有被保存在文本文件中(C++ Fstream庫)
- 9. vim - 有些褶皺沒有被保存
- 10. 有沒有辦法將命令本身寫入輸出文件?
- 11. 有沒有辦法壓縮SQL2000/2005 MDF文件?
- 12. 有沒有辦法使用C#壓縮分頁的.tiff文件?
- 13. Android沒有保存文本?
- 14. 有沒有辦法使用按鈕
- 15. MFC:有沒有辦法沒有On_Bn_Clicked()事件的活動按鈕?
- 16. 按鈕沒有被按鈕
- 17. 保存在內部存儲中的文件沒有被保存
- 18. php保存到文件沒有提交按鈕
- 19. 有沒有辦法保存HSQLDB數據?
- 20. 有沒有辦法通過Flex比較文本文件?
- 21. 有沒有辦法用itextsharp替換PDF文件中的文本?
- 22. 有沒有辦法在firebase存儲中覆蓋保存的文件?
- 23. 有沒有辦法通過phonegap保存iPhone閃存中的文件?
- 24. 有沒有辦法在按鈕和文本上方浮動一個加載器?
- 25. 有沒有什麼辦法只旋轉ios中的按鈕的文本
- 26. 有沒有辦法告訴你的python文件在哪裏?
- 27. 有沒有辦法測試CSS文件?
- 28. 有沒有辦法調試plist文件?
- 29. 有沒有辦法區分C++文件?
- 30. 有沒有辦法使用Javascript將HTML文件文本存儲到數組中
。 – furas