在TextView中右键单击移动光标?

时间:2010-07-19 03:03:25

标签: python pygtk

此刻,当右键单击TextView时,会弹出一个弹出菜单,但是光标实际上并没有将位置改变为右键单击的位置,而是只留下光标。对于我,谁试图实施拼写检查菜单,这是不好的,因为我必须单击然后右键单击以使光标在正确的位置。所以,我的问题是,是否有任何方法可以某种方式修改此行为,以便它实际上以某种方式执行此操作?

1 个答案:

答案 0 :(得分:3)

好吧,我偶然发现了gtk.TextView.get_iter_at_location,它引导我gtk.TextView.get_pointer和gtk.TextView.window_to_buffer_coords。基本上,为了实现这一点,我做到了:

    x, y = self.textView.get_pointer()
    x, y = self.textView.window_to_buffer_coords(gtk.TEXT_WINDOW_WIDGET, x, y)
    if self.textView.get_iter_at_location(x, y).has_tag(self.errTag):
        # Code here

基本上,它获取指针的位置(相对于窗口),将其转换为缓冲坐标(我发现gtk.TEXT_WINDOW_TEXT给出了与gtk.TEXT_WINDOW_WIDGET相同的坐标,但我认为我在谨慎方面犯了错误并使用小部件的窗口),然后在该位置获取iter。非常有效。