是否可以覆盖Tkinter文本小部件中的默认“拖动选择”行为以允许列选择? 我希望用户指向鼠标,按左键并按住左键移动以在列模式下选择。默认行为选择是面向行的。 我喜欢像vim列模式这样的东西。
谢谢你, L -
答案 0 :(得分:1)
是的,有一种方法,虽然它需要一些工作。基本想法是绑定到<ButtonPress-1>
,<B1-Motion>
和<ButtonRelease-1>
。在这些绑定中,您必须跟踪光标在单击时的位置以及光标在被拖动时的位置。然后,您必须计算该边界框内的哪些字符,并将sel
标记分别添加到这些字符中。
如果您使用固定宽度字体并关闭包装,这应该非常简单。使用可变宽度字体和/或允许包装,问题将变得更加困难。但最终,当用户拖动鼠标时,它可以归结为做一些数学运算。
为了获得灵感,你可以看到有人在block-select page on the tcler's wiki的tcl / tk中如何做到这一点。