У меня есть рубиновая программа, в которой используется пакет TK gui, и у меня возникают проблемы с TkButton, в частности с частью команды. Я пытаюсь запустить метод, который находится в том же классе, когда нажимается кнопка. Мой код ниже. Я очень новичок в Ruby, но не в программировании вообще. Когда кнопка нажата в gui, я получаю сообщение об ошибке «Error: NameError: unknown option ...», где он идентифицирует вызов метода в кнопке в качестве причины ошибки. Может кто-нибудь объяснить, что я делаю неправильно? Я использую RubyMine для разработки.Ruby TkButton не запускает proc
Код:
require 'tk'
require 'test/unit'
require_relative 'calc'
require_relative 'calcTest'
class CalcUIK
def test_add
calc = Calc.new
expected = Calc.add tk6.get().to_i,tk6.get().to_i
tk8['textvariable'] = 'Result: ' + expected
end
hello = TkRoot.new do
title "Hello World"
# the min size of window
minsize(400,400)
end
tk1 = TkLabel.new(hello) do
text 'Super Calculator'
foreground 'red'
pack { padx 15; pady 15; side 'left'}
end
tk5 = TkLabel.new(hello) do
text 'Enter two numbers to math'
foreground 'blue'
pack { padx 15; pady 15; side 'left'}
end
tk6 = TkEntry.new(hello) do
foreground 'blue'
pack { padx 15; pady 15; side 'left'}
end
tk7 = TkEntry.new(hello) do
foreground 'blue'
pack { padx 15; pady 15; side 'left'}
end
tk8 = TkLabel.new(hello) do
textvariable
foreground 'blue'
pack { padx 15; pady 15; side 'left'}
end
tk2 = TkButton.new(hello){
text 'Add'
command (proc {self.test_add})
pack('padx'=>'20')
pack('side'=>'left')
}
end
Tk.mainloop
PS Я знаю, что этот код вроде немой, но это просто манекен программы установить некоторые более важные вещи. Проблема, которую мне нужно решить, - это то, почему нажатие кнопки не выполняет метод test_add. Благодарю.