soul_rebel
03-05-2005, 00:48
ich hab eine kde-anwendung und öffne in einen thread eine pipe aus der ich dann daten auslesen und diese blockweise in ein KTextEdit schreibe. das sieht so aus:
char buffer[1500]="";
char prebuffer[1500]="";
while (!feof(installPipe))
{
fgets(buffer, 300, installPipe);
if (strcmp(buffer,prebuffer)!=0)
m_parent2->tOutput->append(buffer);
strcpy(prebuffer,buffer);
}
da fgets kontinuierlich daten ausließt prüft das if argument in der mitte noch ob die daten wirklich neu sind bevor es sie in das textedit schreibt. so weit so gut, ABER qt verursacht seltsame fehler dabei; das programm friert ein, d.h. alles friert ein außerdem textedit, dafür sehen die scrollbars vom textedit sehen aus wie ein bildstörung im fernsehen...
das programm stürtzt aber nicht ab, kein segfault oder buserror oder so also hilft gdb auch nciht weiter. auf der konsole krieg ich dafür ein
xlib: unexpected async reply (sequence 0xdd9d1)!
uns SEHR viele:
QPixmap::operator=: Cannot assign to pixmap during painting
also bin ich davon ausgegangen dass das widget einfach zu oft neugezeichnet wird und hab (da das ganze ja in nem thread abläuft) einfach ein msleep(1000) (1 sekunde) in schleife vor das append gepackt aber es hilft nciht....
hat jemand eine idee?
char buffer[1500]="";
char prebuffer[1500]="";
while (!feof(installPipe))
{
fgets(buffer, 300, installPipe);
if (strcmp(buffer,prebuffer)!=0)
m_parent2->tOutput->append(buffer);
strcpy(prebuffer,buffer);
}
da fgets kontinuierlich daten ausließt prüft das if argument in der mitte noch ob die daten wirklich neu sind bevor es sie in das textedit schreibt. so weit so gut, ABER qt verursacht seltsame fehler dabei; das programm friert ein, d.h. alles friert ein außerdem textedit, dafür sehen die scrollbars vom textedit sehen aus wie ein bildstörung im fernsehen...
das programm stürtzt aber nicht ab, kein segfault oder buserror oder so also hilft gdb auch nciht weiter. auf der konsole krieg ich dafür ein
xlib: unexpected async reply (sequence 0xdd9d1)!
uns SEHR viele:
QPixmap::operator=: Cannot assign to pixmap during painting
also bin ich davon ausgegangen dass das widget einfach zu oft neugezeichnet wird und hab (da das ganze ja in nem thread abläuft) einfach ein msleep(1000) (1 sekunde) in schleife vor das append gepackt aber es hilft nciht....
hat jemand eine idee?