Я обнаружил неожиданную разницу в проверке виджета ввода между классическими и ttk-виджетами в Python 3.5.Разница в проверке виджета виджета между классическими и ttk-виджетами
Использование классических виджетов:
from tkinter import *
def validate(reason):
print("--> validate:", reason)
return(True)
def change():
var.set("data")
root = Tk()
vc = root.register(validate)
var = StringVar()
Entry(root, textvariable = var, validate = "all", validatecommand = (vc, "%V")).pack()
Button(root, text = "Change", command = change).pack()
root.mainloop()
Использование TTK виджетов:
from tkinter import *
from tkinter.ttk import *
... same code as above
С классических виджетов, при нажатии на кнопку "Изменить", функция Validate называется разумом == «принудительному », который, как представляется, соответствует документу Tk. С виджетами ttk, когда нажата кнопка «Изменить», функция проверки не вызывается. В противном случае функция проверки достоверности, по-видимому, имеет эквивалентное поведение для обоих случаев. У кого-нибудь есть идея, если это ошибка или функция?