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