On 2002.12.26 at 15:43:03 +0300, Denis Dzyubenko wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Приветствую, > > Сегодня написал свою первую программу на tcl и Tk, и появилось куча > вопросов, а где их можно задавать я не знаю.
mailto:[EMAIL PROTECTED] > Можно я тут поспрашиваю ? спасибо ;) > Как идеологически правильнее обращаться в widget'ам - в каждой процедуре > обращаться к виджету по его имени, или объявить глобальную переменную в > которую поместить название виджета и обращаться к глобальной переменно, > или в качестве параметра процедуре передавать путь к виждету ? Идеологически правильнее последний вариант. Глобальных переменных следует избегать. А хард-кодед имена неудобны тем, что когда тебе потребуется обвесить теми же процедурами другой виджет, их придется переписывать. > Как обработать закрытие окна - т.е. я нажимаю на кнопку закрытия окна (в > titlebar'е) и хочу чтобы появилось окно Save?Ok:Cancel wm protocol . WM_DELETE_WINDOW обработчик > Как писать портируемые программы - в Linux'е я в качестве начального > пути к файлам использую $env(HOME), но в windows нет такой переменной > окружения? if {$tcl_platform(platform) == "unix" } { set initial_path $env(HOME) } elseif {$tcl_platform(platform) == "windows" } { set initial_path $env(USERPROFILE) } else { tk_messageBox -type ok -title error -message "Don't know where to\ search for files on your platform $tcl_platform(platform)" exit } > Хочу изменить шрифт у одного Text виджета, и чтобы этот шрифт хранился > в каком-нибудь конфигурационном файле - можно использовать > option readfile, но в windows нет такого понятия как XRDB. Откуда > брать нужные мне настройки? По-моему option все равно есть и работает. Эмулируя XRDB там, где ее нету. Но вообще-то никто не мешает задать шрифт при создании виджета явно, или даже позже сказать $widget configure -font что-надо > Как изменить класс моего окна? Обычно класс = имя приложения, но можно > ли сделать по другому? > toplevel -class ClassName создает новое окно с указанным класом. А как > изменить класс у главного (т.е. самого первого) окна приложения? Хорошего способа не знаю. В принципе wish -class дает требуемый результат, но мне не удавалось засунуть это в строчку с #! > Для чего существует команда option get и как ее использовать? Для того, чтобы получить значение опции из option database. Там можно хранить не только те опции виджетов, которые виджеты подбирают автоматически, но и любые другие конфигурационные данные. Например, если ты пользуешься тэгами в текстовом виджете, то цвета шрифта помеченного тэгом автоматически из optiondb не подберутся. А с помощью $widget tag configure -fg [option get $widget mytagfont TagFont] ты ее оттуда добудешь. -- Victor Wagner [EMAIL PROTECTED] Chief Technical Officer Office:7-(095)-748-53-88 Communiware.Net Home: 7-(095)-135-46-61 http://www.communiware.net http://www.ice.ru/~vitus