通过滚动窗口读取输入文本?

时间:2011-04-14 06:21:53

标签: pygtk

我使用pyGTK创建了一个滚动窗口。当我在滚动窗口中键入一些文本时,必须将该类型文本写入文件中。我有一个可以写入文件的函数。但是当我在滚动窗口中键入一些文本时,必须调用该函数。如果有人建议我提供非常有用的解决方案。

2 个答案:

答案 0 :(得分:0)

如果您键入文本,则应订阅文本区域的更改事件,然后安排并执行将文本保存到文件的功能,例如每1秒,以便在键入时自动保存文本。或者你可以有一个后台线程监视该控件的状态并定期保存它,延迟1秒钟。我认为线程方式更正确

答案 1 :(得分:0)

import glib, gtk

saveFilePath = 'textview.txt'

isChanged = True

def onBufferChanged(b):
    global isChanged
    isChanged = True

def onTimeout():
    if isChanged:
        text = textbuff.get_text(textbuff.get_start_iter(), textbuff.get_end_iter())
        open(saveFilePath, 'w').write(text)
        isChanged = False
    return True ## Continue loop

textview = gtk.TextView()
textbuff = textview.get_buffer()
textbuff.connect('changed', onBufferChanged)
glib.timeout_add_seconds(1, onTimeout)

dialog = gtk.Dialog()
dialog.vbox.pack_start(textview, 1, 1)
dialog.vbox.show_all()
dialog.run()