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

发布于 2024-11-01 09:10:46 字数 119 浏览 1 评论 0原文

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

I have created a scrolled window using pyGTK. When I type some text in the scrolled window,that typed text must be written in a file. I have a function which could write to the file. But as and when I go typing some text into the scrolled window that function must be called. If anyone suggest me the solution that would be very helpufull.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

胡大本事 2024-11-08 09:10:46
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()
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()
菩提树下叶撕阳。 2024-11-08 09:10:46

如果您键入文本,您应该订阅文本区域的更改事件,然后计划并执行将文本保存到文件的函数,例如每 1 秒一次,这样当您键入文本时,文本就会自动保存。或者您可以有一个后台线程来监视该控件的状态并定期保存它,延迟 1 秒,这样。我认为线程方式更正确

You should subscribe to change event of text area were you type text and then schedule and execution of function that saves the text to file say each 1 second, so as you type your text would automatically saved. or you could have a background thread that monitors state of that control and save-s it regularly with 1 second delay so that. I think thread way is more correct

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文