Gestion des dates
-
Bonjour à tous,
Rien n'est vraiment aisé en QT et le moins que l'on puisse dire c'est que la bête est aussi obscure qu'un fog sur la tamise Londonienne en plein Hiver. La documentation l'est tout autant. Je suis en train de créer une application reliée à une SGBDR (Mysql). La première requête (QSqlQurery) a été rédigé ainsi :def nouvelle_controverse(self, titre, datedeb): self.query.prepare("""INSERT INTO controverses (titre, datedeb) VALUES(?,?)""") self.query.addBindValue(titre) date = QDate date.getDate(datedeb) self.query.addBindValue(date) self.query.exec()
Cette première requête fonctionne. En revanche, je ne parviens pas à faire la marche arrière. En gros, lorsque je réalise un SELECT en QSQL, la requête retourne systématiquement la valeur "PyQt6.QtCore.QDate()" pour ce qui est des dates. Compte tenu que ces dates doivent venir mettre à jour le QDateEdit de l'écran de gestion, cela génère systématiquement une erreur (toujours très obscure d'ailleurs).
Voici le code de la requête pour récupérer les données qui viendront compléter le formulaire :self.query.prepare("""SELECT TITRE,DATE_DEB, DATE_FIN, PITCH FROM controverses WHERE ID_CONTRO = ?; """) self.query.addBindValue(id_controverse) self.query.exec() self.liste=[] while self.query.next(): titre = self.query.value(0) date_debut =self.query.value(1) date_fin = self.query.value(2) pitch = self.query.value(3) self.liste.append(titre) self.liste.append(date_debut) self.liste.append(date_fin) self.liste.append(pitch) return self.liste
Je remercie la ou les âmes charitable(s) qui voudront bien m'indiquer ce qu'il faut faire pour obtenir une date valide pour ensuite l'utiliser dans le QDateEdit. D'ailleurs au passage, est il possible d'obtenir ces dates en français (je dis bien en LANGUE française, il n'est pas question ici du format).
Je vous remercie par avance.
Bien à vous.
Stéphane -
Salut,
est il possible d'obtenir ces dates en français
J'ai fait quelques tests:
QDate date=QDate::currentDate(); QString str=date.toString(Qt::DefaultLocaleLongDate); qDebug()<<str; str=date.toString("dddd dd MMMM yyyy"); qDebug()<<str;
"11 août 2022"
"jeudi 11 août 2022"Pas de prob à priori (Qt 5.12 MacOS 10.14)
cela génère systématiquement une erreur (toujours très obscure d'ailleurs).
Connaître laquelle pourait être utile :)
-
Bonjour mergrand,
Je vous remercie pour votre réponse. Je vais essayer de la mettre en application. La difficulté c'est que les dates proviennent d'un requête SQL. Or, il semble bien qu'à chaque fois que je l'exécute, le résultat est systématiquement le même : "PyQt6.QtCore.QDate()".
Encore merci pour votre aide. Je reviens vers vous au besoin ?Bien à vous.
Stéphane -
Malheureusement je ne connais pas le langage python, donc je vais écrire dans une sorte de pseudo langage.
date_debut =self.query.value(1) # tester la validité if date_debut.isValid() QString date_fr=date_debut.toString("dddd dd MMMM yyyy"); print(date_fr) else print("date invalide")