У меня есть следующий код:
dialogproc = proc {
if (tree.focus_item)
per = Person.get(tree.focus_item)
dialog = persondialog(per, root)
dialog.set_focus()
dialog.grab()
dialog.transient(root)
per.save
end
}
В persondialog я создаю TkToplevel.Я хочу, чтобы он был модальным в том виде, в котором я привык к нему с помощью наборов инструментов, таких как Borlands OWL, где контроль передается диалогу, и человек будет сохранен после закрытия диалога.В моем примере сохранение вызывается в тот же момент, когда отображается диалоговое окно.
За исключением того, что диалог довольно модальный (вы можете взаимодействовать с границей окна, но для меня это не проблема).Я сделал несколько диких тестов с tkwait (довольно недокументированным для пользователей ruby), но безуспешно.Либо это не сработало вообще, либо появилось несколько странных сообщений об ошибках tk, которые не указывали на полезное направление.
Я не уверен, что я иду в правильном направлении.Я мог бы, вероятно, решить мою проблему, предоставив proc в persondialog, который вызывается, когда вызывается кнопка «Сохранить» и при желании сохраняет человека или делает что-то еще.
Или необходимо наследование класса от TopLevel?
Как ваши советы для лучшего решения.Я хочу, чтобы диалог вносил изменения только в модель, но не в базу данных.Это должно быть сделано как-то независимо.Спасибо.