Для вывода я использую QTextEdit и его метод append(). Если выводить данные с черепашьей скоростью, то все работает отлично. Но если вывод осуществляется быстро (поток данных получается по сети и затем в читабельном виде выводится в окошко) то через несколько секунд программа вылетает с ошибкой сегментации. При этом gdb останавливается на библиотечных функциях, а в консоль откуда запускалось приложение выпадают сообщения таких типов:
Самое частое:
QPixmap::operator=: Cannot assign to pixmap during painting
Чуть пореже:
Xlib: unexpected async reply (sequence 0x17b3)!
А один раз даже:
QPixmap::operator=: Cannot assign to pixmap during painting
X Error: BadLength (poly request too large or internal Xlib length error) 16
Major opcode: 56
Minor opcode: 0
Resource id: 0x0
X Error: BadLength (poly request too large or internal Xlib length error) 16
Major opcode: 14
Minor opcode: 0
Resource id: 0x0
X Error: BadRequest (invalid request code or no such operation) 1
Major opcode: 250
Minor opcode: 0
Resource id: 0x0
X Error: BadLength (poly request too large or internal Xlib length error) 16
Major opcode: 32
Minor opcode: 0
Resource id: 0x0
monitor: Fatal IO error: client killed
X Error: BadLength (poly request too large or internal Xlib length error) 16
Major opcode: 56
Minor opcode: 0
Resource id: 0x0
X Error: BadLength (poly request too large or internal Xlib length error) 16
Major opcode: 14
Minor opcode: 0
Resource id: 0x0
X Error: BadRequest (invalid request code or no such operation) 1
Major opcode: 250
Minor opcode: 0
Resource id: 0x0
X Error: BadLength (poly request too large or internal Xlib length error) 16
Major opcode: 32
Minor opcode: 0
Resource id: 0x0
monitor: Fatal IO error: client killed
Вывод я осуществляю из потока наследника QThread. Пробовал закоментировать и вместо него выводь на консоль:
// TextEdit->append( str )
printf("%s", str.ascii()) ;
printf("%s", str.ascii()) ;
Выводится отлично, а как только возвращаю обратно вывод в форму опять тотже косяк!
Может кто сталкивался, или знает где есть ответ? А то я уже реально запарился!!!
Или может есть какие другие методы решения задачи?
Версия Qt3.3.4 Поменять ее не могу.