我想知道是否有人知道如何将按钮点击保存到文本文件中。例如,如果一个按钮上有文字“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