QT Repaint / Redraw / Mettre à jour / Faire quelque chose

Je suis Nouveau sur QT. Je comprends que vous pouvez forcer un rafraîchissement d'affichage, mais j'ai retiré tous mes cheveux à essayer de comprendre comment. Voici ce que je suis précisément en essayant de faire.

J'appuie sur un bouton (onClick signal de l'événement), qui exécute le code qui change l'image (QLabel) sur l'écran, l'attente pour l'entrée, et se poursuit ensuite par la modification d'une nouvelle image (différents QLabel). J'ai tout essayé et l'affichage n'est pas de rafraîchissement jusqu'à ce que le onclick du signal de code d'événement est complet. Maintenant, je ne suis pas d'attente pour l'entrée d'utilisateur, je suis en utilisant usleep(~500 ms) pour des fins de test.

De ce que j'ai lu, QT est régie par les événements sens que je suis à la base de la création d'un tas d'événements, qui se mettre dans un québec, et exécutée lorsque l' (onClick signal d'événement) renvoie à l' (boucle principale)/(event handler). Je ne veux pas attendre jusqu'à ce que la fonction est terminée, il va faire de la programmation extrêmement douloureux si je dois accomplir cette routine entièrement basé sur les événements.

Comment puis-je forcer le QLabel pixmap pour se rafraîchir. J'ai tout essayé. Ci-dessous est tout le code que j'ai essayé dans mon onClick signal de gestionnaire d'événements. (upButton est le nom de la QLabel qui est un pixmap)

update();
repaint();
ui->upButton->setUpdatesEnabled(TRUE);
update();
repaint();
QPaintEvent paintevent(ui->upButton->childrenRegion());
QPaintEvent * test = &paintevent;
paintEvent(test);
this->changeEvent(test);
ui->upButton->update();
ui->upButton->repaint();
ui->upButton->repaint(ui->upButton->childrenRegion());
repaint();
QApplication::sendPostedEvents();
this->parentWidget()->update();
usleep(100000);

Comme vous pouvez le voir, je suis juste prise de vue dans le noir à ce point. J'ai essayé de regarder les exemples de code et de faire tous mes devoirs, mais je suis perdu. D'apprécier l'aide, des conseils ou des exemples de code.

source d'informationauteur Jason Kotzin