LINUX.ORG.RU

[Tk] Доступ в главное меню программы с клавиатуры

 


0

0

Как достучаться к главному меню Tk-шной программы с клавиатуры?

Во всех остальных тулкитах открытие менюшки повешено на нажатие клавиши Alt, а открытие соответствующего пункта -- на Alt+{подчёркнутая буква}.

Как мне сделать то же самое в Tk?

★★
Ответ на: комментарий от jtootf

Пробовал, не выходит :( Получаю по alt-буква следующее:

grab failed: window not viewable
grab failed: window not viewable
while executing
"grab -global $w"
(procedure "tk::TraverseToMenu" line 21)
invoked from within
"tk::TraverseToMenu .messageTreeFrame.w l"
(command bound to event)

gaa ★★
() автор топика
Ответ на: комментарий от jtootf

> ммм. а можно контекст ? код, в котором создаётся меню и код, в котором происходит обработка события

Я ещё попробую написать всё это отдельно, без лишнего кода, но пока что можно глянуть:

http://tklor.googlecode.com/files/tklor_0.9.1-1.tar.gz . Там в файле tkLOR.tcl найти функцию initMenu и попробовать добавить в строчку

.menu add cascade -label "LOR" -menu .menu.lor

тот самый "-underline 0" и, опсле запуска, нажать alt-l.

Но я конечно же не заставляю разбираться в 3к строчек кода.

gaa ★★
() автор топика
Ответ на: комментарий от gaa

на работе разобраться сейчас не представляется возможным; буду смотреть как доберусь домой. если не буду подавать признаков жизни, то можно пинать на jtootf at jabber.ru

>Но я конечно же не заставляю разбираться в 3к строчек кода

да без проблем

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> ммм. а можно контекст ? код, в котором создаётся меню и код, в котором происходит обработка события

Написал максимально урезанный вариант. Ошибка всё та же:

#!/bin/sh
# \
exec wish "$0" "$@"

package require Tcl 8.4
package require Tk 8.4

menu .menu -type menubar
.menu add cascade -label "Menu" -menu .menu.lor -underline 1

set m [ menu .menu.menushka -tearoff 0 ]
$m add command -label "Subitem" -underline 0
$m add command -label "Exit" -command exit

. configure -menu .menu

gaa ★★
() автор топика
Ответ на: комментарий от gaa

Оп-с, поправочка:

#!/bin/sh # \ exec wish "$0" "$@"

package require Tcl 8.4 package require Tk 8.4

menu .menu -type menubar .menu add cascade -label "Menu" -menu .menu.menushka -underline 1

set m [ menu .menu.menushka -tearoff 0 ] $m add command -label "Subitem" -underline 0 $m add command -label "Exit" -command exit

. configure -menu .menu

gaa ★★
() автор топика
Ответ на: комментарий от gaa

>[ тема закрыта ]

ну вот, только доползёшь до клавиатуры - а тема-то уже и закрыта :( это ужасно, граждане. ужасно

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

> ну вот, только доползёшь до клавиатуры - а тема-то уже и закрыта :( это ужасно, граждане. ужасно

Ну у меня ещё один незакрытый вопрос есть: как сделать, чтобы Tile заюзало текущую системнуйю цветовую схему :)

Хотя, пожалуй, я для него отдельную тему создам.

gaa ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.