Ok, also ich habe eine QGraphicsScene
in einer Klasse namens Auge. Ich nenne eine Funktion:Qt: QGraphicsScene nicht aktualisiert, wenn ich es erwarten würde
void eye::playSequence(int sequenceNum) {
for (int i=0; i<sequences[sequenceNum].numberOfSlides(); i++) {
presentSlide(sequenceNum, i);
time_t start;
time(&start);
bool cont=false;
while (!cont) {
time_t now;
time(&now);
double dif;
dif=difftime(now, start);
if (dif>5.0)
cont=true;
}
}
}
, das für jede Folie ruft:
void eye::presentSlide(int sequenceNum, int slideNum) {
Slide * slide=sequences[sequenceNum].getSlide(slideNum);
QGraphicsPixmapItem * pic0=scene.addPixmap(slide->getStimulus(0)->getImage());
pic0->setPos(0,0);
QGraphicsPixmapItem * pic1=scene.addPixmap(slide->getStimulus(1)->getImage());
pic1->setPos(horizontalResolution-350,0);
QGraphicsPixmapItem * pic2=scene.addPixmap(slide->getStimulus(2)->getImage());
pic2->setPos(horizontalResolution-350,verticalResolution-450);
QGraphicsPixmapItem * pic3=scene.addPixmap(slide->getStimulus(3)->getImage());
pic3->setPos(0,verticalResolution-450);
}
Nun, ich würde erwarten, dass dies einen Satz von Bildern angezeigt werden, für 5 Sekunden warten, dann die nächste Anzeige, und so auf. Stattdessen wird nichts angezeigt, bis alle Folien bearbeitet wurden und dann die letzten vier Bilder angezeigt werden. Ich habe versucht, an jedem Ort zu nennen, an dem ich mich vorstellen konnte, und es hat nichts getan. Es sieht so aus, als ob die Szene nur aktualisiert wird, wenn die Funktion playSequence
zurückkehrt. Irgendwelche Ideen was hier vor sich geht?