0
我有一個應用程序使用GtkTextView和GtkTextBuffer。行被添加到緩衝用它運行在從主處理一個單獨的線程以下Python代碼:Gtk +3 TextView應用程序崩潰
while True:
if aLogQueue.qsize() > 0:
aBuffer = aLogTextView.get_buffer()
try:
newLogMessage = aLogQueue.get_nowait()
ipri = int(newLogMessage[0])
if(ipri>=self.ListenLogMinPr):
aniter = aBuffer.get_iter_at_line(0)
aBuffer.insert(aniter, newLogMessage)
#mark = aBuffer.get_mark('insert')
#aniter = aBuffer.get_iter_at_mark(mark)
#aBuffer.place_cursor(aniter)
pass
except:
print('threw exception in message loop')
self.gui_shutdown()
aLogQueue是一個行ASCII文本消息的隊列。
應用程序工作了一段時間,但後來總是有以下錯誤
Gtk:ERROR:gtktextview.c:4328:gtk_text_view_validate_onscreen: assertion failed: (priv->onscreen_validated)
請注意,我在0線插入崩潰,使迭代器被插入調用而被破壞的事實應該沒有影響。
它在失敗之前寫入20到200行。它看起來並沒有涉及到註銷文本緩衝區的邊緣,並在預期時出現滾動條。
有什麼建議嗎?
謝謝RBT,但我需要更多的信息。我有以下方法在GTK的獨立線程中運行。 –