【问题标题】:How to make a dynamic tooltip with Tkinter?如何使用 Tkinter 制作动态工具提示?
【发布时间】:2018-06-25 00:13:19
【问题描述】:
我最近开始使用 Tkinter 为我的 Python 代码创建图形界面。在我的表格上,我使用。至少有 1 个文本字段,即 Tkinter.Entry 的一个实例。它的长度并不总是足以显示整个文本,因此我希望显示带有完整文本的工具提示。
用户可以更新文本字段,然后工具提示当然应该显示更新的文本。这就是我所说的动态工具提示。我已经看到问题What is the simplest way to make tooltips in Tkinter? 有几个答案 - 例如来自 crxguy52 的一个不错的工具 - 但这些工具提示似乎都不是动态的。任何人都可以建议做什么,以安排动态工具提示吗?
【问题讨论】:
标签:
python
dynamic
tkinter
tooltip
【解决方案1】:
我已经使用了crxguy52 的code。在方法 __init__ 的接口中提到了一个小部件。就我而言,这是 Tkinter.Entry 控件。在 showtip 方法中,我替换了这一行:
label = tk.Label(self.tw, text=self.text, justify='left',
background="#ffffff", relief='solid', borderwidth=1,
wraplength = self.wraplength)
与:
label = tk.Label(self.tw, text=self.widget.get(), justify='left',
background="#ffffff", relief='solid', borderwidth=1,
wraplength = self.wraplength)
现在显示的工具提示已变为动态 ;-)
【解决方案2】:
使用您链接的问题中的answer,将工具提示引用存储在您的对象中,并通过“文本”设置器扩展@crxguy52 提供的类。
示例代码:
class CreateToolTip(object):
""" class from crxguy52 """
# ...
# implementation like crxguy showed
# ...
def set_text(self, new_text):
self.text=new_text
然后就可以动态使用tooltip.set_text("this is the new text to show")了。