|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Renat Araslanow 2:5011/119.1 03 Mar 2003 00:06:31 To : All Subject : perl/TK -------------------------------------------------------------------------------- чтобы двигать фрейм, созданный как потомок канваса, а потом createwindow в канвасе, приходится переопределять bindtags([$canvas]). колбеки на <1>, <B1-Motion> <B1-ButtonRelease> поставлены через CanvasBind две проблемы: 1. таг current для фрейма автоматически ставиться в редких, непредсказуемых случаях. приходится выставлять вручную в колбеке на <1>. удалять соответственно <B1-ButtonRelease> 2. если используется композитный виджет, то вообще всё становиться непонятным. за основу берём LabFrame (с labelside =>'top'). (кто не смотрел поясню - там на SUPER::Populate фрейме создаются фрейм и лабел) в Populate пишем $f->bindtags([$cw]); $label->bindtags([$cw]); всё равно нормально евенты не идут. приходиться определять свой метод bindtags и там делать $compositeWidget->bindtags(@_); $label->bindtags(@_); $frame->bindtags(@_); после этого нормально можно двигать. но ведь, с моей точки зрения, это всё ненормально! если я говорю $subwidget->bindtags([$superwindget]), то хочу чтобы все эвенты выполнялись бы так, как они выполняются для супервиджета. но стоит поменять биндтагс супервиджета - как уже ничего не вызывается /_=(_/ . может быть я просто плохо понимаю то, как это всё должно работать - тогда прошу подтолкнуть на правильную стезю поиска. --- [Преждевременная оптимизация -- корень всех зол Д. Кнут] * Origin: Чайник с программным управлениемЪ (2:5011/119.1) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/32783e624b7f.html, оценка из 5, голосов 10
|