Я хочу иметь TkEntry, который принимает только числовые значения, но я не могу понять, как это сделать. :validatecommand
вызывается только один раз, когда инициализируется TkEntry, и я не могу понять, как правильно передать аргумент в!
Вот пример файла, который иллюстрирует мою проблему:
require 'tk'
# validation method
def isNumerical?
return false # i plan to actually do something here once i can get a variable in
end
def initWindow
@root = TkRoot.new {
title "Bluebird"
minsize 400, 300
setgrid
}
entry = TkEntry.new(
@root,
:width=>5,
:textvariable=>TkVariable.new("2241"),
:validate=>"key",
:validatecommand=>proc{isNumerical?}
).grid(:column=> 0, :row=> 0)
end
initWindow
Tk.mainloop