Récupérer la valeur d'un enregistrement sqlite dans un textbox en PyQt5

Résolu/Fermé
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 4 févr. 2020 à 09:34
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 - 5 févr. 2020 à 08:47
Bonjour,

J'aimerais savoir comment récupérer un enregistrement d'une base de donnée sqlite dans un combobox:

Voici mon code python:

from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys
import sqlite3
class Fenetre(QMainWindow):
        def __init__(self):
            super(Fenetre, self).__init__()
            self.setWindowTitle("Mon interface")
            self.setMinimumSize(100,200)
            self.setWindowIcon(QIcon("icon.png"))

            #Création du combobox:
            self.combobox=QComboBox(self)
            #self.combobox.addItem(self.requete())
            self.combobox.move(40,40)
            self.combobox.addItem("enregistrement à récupérer")



app=QApplication.instance()
if not app:
    app=QApplication(sys.argv)
fenetre=Fenetre()
fenetre.show()
app.exec_()



Est voici ma base:

    def requete(self):
            xcon = sqlite3.connect("mabase.db")
            xcur = xcon.cursor()
            xcur.execute("create table if not exists user(id integer,nom string(25))")
            xcur.execute("insert into user(id,nom) values(1,"Julien")")
            xcur.execute("insert into user(id,nom) values(2,"José")")
            xcur.execute("insert into user(id,nom) values(3,"Francois")")
            print(xcur.fetchall())
            liste=xcur.fetchall()
            xcon.commit()
            xcon.close()



Merci de votre aide.

3 réponses

yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 Ambassadeur 1 556
4 févr. 2020 à 09:51
bonjour, il me semble qu'il faut commencer par faire un SELECT pour récupérer la donnée.
1
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 9
4 févr. 2020 à 11:34
Merci de m'avoir répondu, bon on supposant que je fais un select:

def requete(self):
            xcon = sqlite3.connect("mabase.db")
            xcur = xcon.cursor()
            xcur.execute("select * from user")
            print(xcur.fetchall())
            liste=xcur.fetchall()
            xcon.commit()
            xcon.close()



Alors comment récupérer le résultat du selection dans le combobox?
ce que je veux c'est du genre:

self.combobox.addItem("résultat du selection")
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556
4 févr. 2020 à 12:00
que veux-tu précisément récupérer?
0
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 9
4 févr. 2020 à 12:08
Je veux récupérer tous les noms du table user dans le combobox comme montre l'image ci-après:
0
yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024 1 556
4 févr. 2020 à 13:14
suggestion:
xcon = sqlite3.connect("mabase.db")
xcur = xcon.cursor()
xcur.execute("select nom from user")
for ligne in xcur:
    self.combobox.addItem(ligne[0])
0
rasielblas Messages postés 135 Date d'inscription jeudi 20 mars 2014 Statut Membre Dernière intervention 12 mai 2021 9 > yg_be Messages postés 23361 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 29 novembre 2024
5 févr. 2020 à 08:47
Ça marche, merci beaucoup ;-)
1