J'apprends le QT5 pour m'amuser, et j'apprends à peindre des widgets pour un jeu 2D. J'ai regardé à travers de nombreux tutoriels et de la documentation, et je veux obtenir des informations sur les recherches à effectuer ici. D'après ce que j'ai appris, il semble que la peinture ne peut être effectuée que dans la fonction paintEvent. J'essaie de comprendre comment faire pour que je puisse conditionnellement peindre quelque chose sur un widget en fonction de la saisie au clavier. Par exemple, je veux le faire imprimer "alpha" si j'appuie sur a, et "beta" si j'appuie sur b.QT peinture au widget
Évidemment, je pourrais faire cela par une variable de chaîne globale, mais que feraient d'autres façons? Je suis à la recherche de la bonne façon QT pour faire cela, des suggestions? Comment implémenteriez-vous le psudocode suivant?
void paintEvent(QPaintEvent*)
{
QPainter painter(this);
//painter.drawText(QPoint(100,100), "example");
}
void keyPressEvent(QKeyEvent *k)
{
QString temp = k->text();
if(temp == "a")
//paint "alpha"
if(temp == "b")
//paint "beta"
}
Merci d'avance!
Vraiment? Cela a du sens, mais cela semble un peu trop superficiel. Qu'en est-il de l'utilisation d'un QPixmap? Dois-je stocker activement dans les variables tout ce que je veux peindre dans paintEvent? – Nathan
Je ne suis pas sûr de ce que QPixmap va faire pour vous dans cet exemple. Et oui, vous devez maintenir l'état séparément de votre événement de peinture. Il sera appelé plusieurs fois automatiquement par le système de peinture de Qt et vous aurez besoin de connaître l'état de votre widget à un moment donné, pas seulement au moment de la frappe. – Chris
Cela semble plutôt inefficace. Est-il possible que la zone de peinture reste statique entre les appels à paintEvent? – Nathan