使用Python的Gtk3,TextView上升多个'标记设置'信号

时间:2012-12-08 20:15:53

标签: python pygtk gtk3

考虑以下示例代码,该代码将TextView置于窗口内并注册mark-set事件:

#!/usr/bin/env python3

from gi.repository import Gtk

win = Gtk.Window(title='test')
text_view = Gtk.TextView()

def test (*args):
    print('test!')

win.add(text_view)
text_view.get_buffer().connect('mark-set', test)

win.connect('delete-event', Gtk.main_quit)
win.show_all()
Gtk.main()

如果我启动它,然后点击可视化的TextView 一次,我会多次获得调试输出:

$ ./test.py 2>/dev/null
test!
test!
test!
test!

你知道为什么会这样吗?有没有办法避免它?

1 个答案:

答案 0 :(得分:0)

我不知道为什么确切地发生了这种情况,但我找到了一些东西来帮助您理解,或使用它来阻止处理程序中的重复操作,使用{{1} }。在这里,我更改了您的代码,键入了一些文本并使用它(选择一些文本,单击某处,...)

mark.get_name()