Чтение ввода текста через прокручиваемое окно? - PullRequest
1 голос
/ 14 апреля 2011

Я создал окно с прокруткой, используя pyGTK. Когда я набираю текст в прокручиваемом окне, этот набранный текст должен быть записан в файл. У меня есть функция, которая может записать в файл. Но когда я набираю какой-то текст в прокручиваемом окне, эта функция должна вызываться. Если кто-нибудь предложит мне решение, это будет очень полезно.

Ответы [ 2 ]

0 голосов
/ 17 апреля 2011
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()
0 голосов
/ 14 апреля 2011

Вы должны подписаться на событие изменения текстовой области, если вы вводите текст, а затем график и выполнение функции, которая сохраняет текст в файл, скажем, каждую 1 секунду, так что при вводе текст будет автоматически сохранен. или у вас может быть фоновый поток, который отслеживает состояние этого элемента управления и регулярно сохраняет его с задержкой в ​​1 секунду, чтобы. Я думаю, что способ нить более правильный

...