Ok, donc j'ai un QGraphicsScene
dans une classe appelée eye. J'appelle une fonction:Qt: QGraphicsScene ne pas mettre à jour quand je m'attendais à
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;
}
}
}
qui, pour chaque diapositive appelle:
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);
}
Maintenant, je me attends à cette option pour afficher un ensemble d'images, attendez 5 secondes, puis afficher la suivante, et ainsi sur. Au lieu de cela, il n'affiche rien tant que toutes les diapositives n'ont pas été traitées et que les quatre dernières images sont affichées. J'ai essayé d'appeler scene.update()
dans tous les endroits où je pouvais l'image et il n'a rien fait. Il semble que la scène ne soit mise à jour que lorsque la fonction playSequence
retourne. Des idées sur ce qui pourrait se passer ici?