Tcl Tk 文本小部件在您仅使用键时跟踪当前行列位置...而不是鼠标

问题描述 投票:0回答:1

问题是我的无知。 鼠标左键工作正常重新给我正确的行和列重新当前光标位置

但我想完全避开鼠标,只使用按键。不幸的是,无论我做什么,我都没有得到像正确的行列这样的东西。请有人解释一下。我只想用按键做事,并且知道光标在每个阶段的位置。谢谢

bind .t <Button-1> {? "wm title . [%W index @%x,%y]"}

它像梦一样工作,但那是我想避免的鼠标

尽管光标像 goodun 一样移动到那里,但按键并没有给我 6.0。

.t  mark set insert 6.0 
.t insert 6.0 ""
bind .t <KP_Insert>     {wm title . [%W index @%x,%y]}
text widget tcl cursor tk-toolkit
1个回答
0
投票

你想要

insert
标记的位置(因为那是插入插入符号的位置)......after类绑定已经行动。

首先要尝试的是对

<Key>
(即任何按键)进行绑定,以延迟读取位置,以便类绑定有机会采取行动。你这样做是因为类绑定在你的实例绑定之后运行,其中一些可能会做
break
以防止全局绑定做错事。

bind .t <Key> {after idle {wm title . [%W index insert]}}

after idle
非常适合这个;在实际重绘小部件的同时安排更改。


实际上,我会在这里使用辅助程序:

proc retitleAfterKey {txt} {
    if {[winfo exists $txt]} {
        set top [window toplevel $txt]
        wm title $top [$txt index insert]
    }
}

bind .t <Key> {after idle {retitleAfterKey %W}}
© www.soinside.com 2019 - 2024. All rights reserved.