我最近开始使用Tkinter为我的Python代码创建图形界面。在我的表格上我使用。至少有一个文本字段,即Tkinter.Entry的一个实例。它的长度并不总是足以显示整个文本,因此我希望用完整的文本显示工具提示。
用户可以更新文本字段,然后工具提示当然应该显示更新的文本。这就是我称之为动态工具提示的内容。我已经看到问题What is the simplest way to make tooltips in Tkinter?有几个答案 - 例如来自crxguy52的一个很好的 - 但这些工具提示似乎都不是动态的。任何人都可以建议做什么,以便安排动态的工具提示吗?
答案 0 :(得分:1)
我已取code crxguy52。在方法__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)
现在显示的工具提示已变为动态; - )
答案 1 :(得分:0)
使用您链接的问题中的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")
。