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