python - 当条目小部件没有聚焦时,我将如何隐藏列表框小部件?
问题描述
我正在开发一个 tkinter 应用程序,并试图仅在条目小部件(当然还有列表框本身)没有获得焦点时才显示列表框。换句话说,它仅在您在条目小部件/打字时显示搜索建议。
self.from_query.bind("<FocusIn>", self.updateList)
self.from_query.bind("<FocusOut>", self.toggle)
# Dynamically updates the query frames listboxes
def updateList(self, *args):
search_term = self.users_search.get()
self.from_listbox = Listbox(root)
self.from_listbox.place(x=100, y=652)
self.from_listbox.pi = self.from_listbox.place_info()
self.from_listbox.config(highlightbackground="red")
test_lbox = ['Adam', 'Lucy', 'Barry', 'Bob', 'James', 'Frank', 'Susan', 'Amanda', 'Christie']
self.from_listbox.delete(0, END)
for item in test_lbox:
if search_term.lower() in item.lower():
self.from_listbox.insert(END, item)
def toggle(self):
print("clicked")
我试图创建一个切换功能,当条目不再具有焦点时仅打印“单击”但它永远不会运行该功能
解决方案
您可以使用该place_forget
方法删除放置的小部件。如果你想让它显示,你将不得不place
再次调用。继承人的一些信息place
和place_forget
方法:
https ://effbot.org/tkinterbook/place.htm
IE:
def toggle(self):
if self.listbox_is_showing:
self.listbox.place_forget()
self.listbox_is_showing = False
else:
self.listbox.place(x=100, y=652)
self.listbox_is_showing = True
你必须listbox_is_showing
设置__init__
推荐阅读
- javascript - noUiSlider(使用步骤 API)+ wNumb - wNumb 格式不适用于第一个工具提示
- typescript - 在运行时使用派生类扩展基实例
- glsl - 在 Three.js 中指定 WebGL2 上下文后,无法遍历 sampler2D 数组
- javascript - 如何使用javascript扩展切换?
- python - 为具有定义数量的参数的类使用多个构造函数
- amazon-cloudformation - 在 AWS cloudformation 中,自定义资源和资源提供者有什么区别?
- mysql - mysql 拿起最近的日期
- angular - 返回对象而不是 Sequelize 中一个对象的数组
- sql - dbReadTable 将日期列从 SQL 数据库强制转换为字符
- python - Flask App 使用错误的 Python 解释器 - 需要知道如何“编译”mod_wsgi 以使用特定的 Python 版本