我用pyGTK創建了一個滾動窗口。當我在滾動窗口中鍵入一些文本時,必須將該鍵入的文本寫入文件中。我有一個可以寫入文件的函數。但是當我在滾動窗口中輸入一些文本時,必須調用該函數。如果有人向我推薦那種非常有用的解決方案。通過滾動窗口讀取輸入文本?
1
A
回答
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()
0
你應該訂閱改變文本區域的事件,你鍵入文本,然後安排和執行功能,將文本保存到文件說每1秒,所以當你輸入你的文本會自動保存。或者你可以有一個後臺線程來監視那個控制器的狀態,並以1秒的延遲定時保存它,這樣。我認爲線程方式更正確
相關問題
- 1. 從ModelSim腳本窗口讀取輸入
- 2. 通過System.in.read讀取輸入()
- 3. 輸入/通過termimal讀取
- 4. 輸入文本框滾動
- 5. 通過ajax獲取輸入文本
- 6. 通過xPath獲取輸入文本
- 7. 獲取滾動窗口
- 8. Matlab:通過腳本模擬命令窗口輸入
- 9. python文本輸入彈出窗口
- 10. 通過R中的彈出窗口輸入輸入
- 11. 滾動窗口
- 12. 如何通過點擊輸入退出通過COM端口讀取條形碼?
- 13. 在父窗口中顯示彈出窗口輸入文本值?
- 14. 滾動鼠標滾動窗口滾動
- 15. 讀取輸入的文本文件
- 16. 輸出文本到窗口
- 17. 如何在不同窗口上獲取輸入文本?
- 18. 如何自動滾動到文本文件窗口的底部?
- 19. 通過在C中輸入數據集來分隔讀取文本文件#
- 20. 讀取輸入文件,插入文本輸出文件
- 21. Vaadin窗口滾動
- 22. 可滾動窗口
- 23. 文本輸入上的水平滾動
- 24. 保持文本輸入滾動同步
- 25. 將輸入文本從iframe移動到主窗口
- 26. Java:讀取文本文件。過濾所選單詞。輸入ArrayList
- 27. Windows提示通過COM端口讀取和發送文本
- 28. 在文本編輯器中輸入時獲取自動完成彈出窗口
- 29. 讀取文本框輸入到代碼
- 30. 將cookie文本讀取到輸入值
我不認爲線程的方式是最簡單的。最簡單的方法是使用'glib.timeout_add_seconds()'定期調用寫函數。 – ptomato 2011-04-14 08:47:58
是的,但這會給你很多後續的寫入用戶類型的每個字符,因此你必須過濾條件什麼時候寫和什麼時候不寫,但是最好有一個單獨的線程寫1秒的過程延遲執行,如果需要寫入任何內容,將會改變 – Troydm 2011-04-14 08:58:54
,那麼你應該在'GtkTextBuffer''''' changed'處理程序中將e'is_changed'標誌設置爲True。並在'timeout_add_seconds'處理程序中檢查此標誌,如果它爲True,則寫入文件並將其設置爲False,否則不執行任何操作。 – saeedgnu 2011-04-17 11:25:25