我想知道是否有人知道如何將按鈕點擊保存到文本文件中。例如,如果一個按鈕上有文字「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. 有沒有辦法解壓JavaScript文件?
- 2. 有沒有辦法找出TButtonGroup的哪個按鈕被點擊?
- 3. 有沒有辦法保護iCalender文件?
- 4. 有沒有辦法將shell腳本的輸出保存到文本文件中?
- 5. 有沒有什麼辦法可以在日誌中留下哪些文件被壓縮的日誌?
- 6. 有沒有辦法查看哪些文件包含/需要其他文件?
- 7. 有沒有辦法將文本文件放入數據庫(SQLite)?
- 8. 有沒有辦法在WinJS中保存Windows.Foundation.Diagnostics.LoggingSession文本?
- 9. 對於svn,有沒有辦法顯示哪些文件位於舊版本?
- 10. 有沒有辦法監聽未保存的文件更改?
- 11. 鉻擴展 - 有沒有辦法永久保存文件?
- 12. asp.net mvc - 有些文件沒有被壓縮
- 13. HTML:當頁面被保存有圖像/文件沒有保存
- 14. 數據沒有被保存在文本文件中(C++ Fstream庫)
- 15. vim - 有些褶皺沒有被保存
- 16. 有沒有辦法將命令本身寫入輸出文件?
- 17. 有沒有辦法壓縮SQL2000/2005 MDF文件?
- 18. 有沒有辦法使用C#壓縮分頁的.tiff文件?
- 19. Android沒有保存文本?
- 20. 有沒有辦法使用按鈕
- 21. MFC:有沒有辦法沒有On_Bn_Clicked()事件的活動按鈕?
- 22. 在AS3中保存/加載文件有哪些好方法?
- 23. 文本文件沒有得到保存,但沒有錯誤(C#)
- 24. 文件沒有被緩存
- 25. 有沒有辦法讓perfored文本?
- 26. 保存在內部存儲中的文件沒有被保存
- 27. 按鈕沒有被按鈕
- 28. php保存到文件沒有提交按鈕
- 29. 有沒有辦法保存HSQLDB數據?
- 30. 有沒有辦法用itextsharp替換PDF文件中的文本?
。 – furas