相关疑难解决方法(0)

交互式验证tkinter中的Entry小部件内容

在tkinter Entry小部件中交互式验证内容的推荐技术是什么?

我已经阅读了关于使用validate=True和的帖子validatecommand=command,并且看起来这些功能受限于它们在validatecommand命令更新Entry小部件的值时被清除的事实.

鉴于这种行为,我们应该绑定的KeyPress,Cut以及Paste事件和监视/更新我们的Entry小部件的价值,通过这件事情?(以及我可能错过的其他相关事件?)

或者我们是否应该完全忘记交互式验证并仅对FocusOut事件进行验证?

python validation textbox tkinter

74
推荐指数
6
解决办法
6万
查看次数

带有 LIKE 搜索的 Python Tkinter 自动完成组合框?

我正在尝试使用预定义的值填充 Tkinter 组合框以供选择。它正在填充,我可以输入并获得建议。但是,为了做到这一点,我必须绝对知道前几个字符。如果我知道字符串中间或末尾的一些文本,则它没有用,因为组合框只执行'LIKE%' 搜索而不是 '%LIKE%' 搜索

预期输出(输入“Ceramic”一词会获取包含该字符串的所有名称。注意:这不是 Tkinter 屏幕截图):

在此处输入图片说明

这是我迄今为止对代码的改编,如果有人可以建议如何修改AutocompleteCombobox类以进行 LIKE 搜索,那就太好了。

作为示例,以下工作代码具有值 "Cranberry" 和 "Strawberry" ,我的要求是键入 "berry" 并获得两种水果的建议。

import Tkinter
import ttk
import sqlite3


class AutocompleteCombobox(ttk.Combobox):

        def set_completion_list(self, completion_list):
                """Use our completion list as our drop down selection menu, arrows move through menu."""
                self._completion_list = sorted(completion_list, key=str.lower) # Work with a sorted list
                self._hits = []
                self._hit_index = 0
                self.position = 0
                self.bind('<KeyRelease>', self.handle_keyrelease)
                self['values'] = self._completion_list  # Setup our popup menu

        def …
Run Code Online (Sandbox Code Playgroud)

sqlite combobox tk-toolkit tkinter python-2.7

3
推荐指数
1
解决办法
1万
查看次数

Tkinter Entry小部件后的事件回调

从这里的第一个答案: StackOverflow#6548837 我可以在用户键入时调用回调:

from Tkinter import *

def callback(sv):
    print sv.get()

root = Tk()
sv = StringVar()
sv.trace("w", lambda name, index, mode, sv=sv: callback(sv))
e = Entry(root, textvariable=sv)
e.pack()
root.mainloop() 
Run Code Online (Sandbox Code Playgroud)

但是,该事件发生在每个键入的字符上。当用户完成键入并按下Enter键或Entry小部件失去焦点(即用户单击其他位置)时,如何调用事件?

python events tkinter callback

0
推荐指数
1
解决办法
4366
查看次数