我想做一個程序(在Python中),當我寫它寫入一個文件,並打開到我已經創建的某個窗口。我已經看到了一個alarund一個看起來多線程可能是唯一的選擇。pygtk textview getbuffer和寫在同一時間
我希望,當選擇自動運行「激活」它會:
while 1:
wbuffer = textview.get_buffer()
text = wbuffer.get_text(wbuffer.get_start_iter(), wbuffer.get_end_iter())
openfile = open(filename,"w")
openfile.write(text)
openfile.close()
我使用PyGTK的,並有一個TextView窗口,但是當我得到緩衝它位於永遠。 我在想,我需要對它進行多線程並將其排隊,以便一個線程在隊列中寫入緩衝區。
我的源代碼是here。 (我認爲聲明是在177.線)
任何幫助,非常感謝。 :)
和這裏的功能:
def autorun(save):
filename = None
chooser = gtk.FileChooserDialog("Save File...", None,
gtk.FILE_CHOOSER_ACTION_SAVE,
(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
gtk.STOCK_SAVE, gtk.RESPONSE_OK))
response = chooser.run()
if response == gtk.RESPONSE_OK: filename = chooser.get_filename()
filen = filename
addr = (filename)
addressbar.set_text("file://" + filename)
web.open(addr)
chooser.destroy()
wbuffer = textview.get_buffer()
while 1:
text = wbuffer.get_text(wbuffer.get_start_iter(), wbuffer.get_end_iter())
time.sleep(1)
openfile = open(filename,"w")
openfile.write(text)
openfile.close()
是的,你是正確的,除了它看起來像Textview沒有「改變」的信號,但get_buffer呢!所以我正在做的是我創建了一個新的功能,這是一個按鈕時,按下時激活其他函數def xrun(x): \t xbuffer = textview.get_buffer() \t xbuffer.connect(「changed」,autorun)。 ..對不起,這個窗口上的編輯是可怕的。謝謝!你讓我今天一整天都感覺很好! – ApertureSecurity
TextView沒有改變,TextBuffer有。 – deinonychusaur