Bonjour,
je suis en train d'essayer de développer une petite application via PyQt4, liée à une base de donnée Sqlite3. En gros, on pourra simplement y enregistrer des "profils clients"(nom, prenom, age etc.) via des QlineEdit pour ensuite parcourir ces "profils" pour les regarder ou les modifier.
Je fais cette appli pour apprendre, je suis débutant de tout, je n'ai jamais rien développer, je ne comprends pas tout, j'ai pas mal lu mais c'est tout. Je suis donc loin d'avoir toutes les bases, et les expressions adéquates, pardonnez-moi d'avance.
Cependant pour en revenir à ma petite appli, elle est composée d'un main.py qui regroupe toutes mes fenêtres créées avec Qt Designer par classes.
Malgré mes lacunes et surtout grâce au net, j'ai tout de même réussi, après des heures de recherche, à créer quelque chose de fonctionnel(ex.: j'accède au menu via mot de passe, du menu j'ouvre une fenêtre pour enregistrer un nouveau profil, une autre pour parcourir les profils existant et les modifier, mes combobox et lineedit fonctionnent bien, ils se mettent à jour en temps et en heure, etc.).
Il ne me reste plus qu'une chose à faire, et là je ne trouve même pas un indice pour savoir vers où me diriger :
dans ma classe Ui_Creerclient, j'ai des QlineEdit avec un bouton. Lorsque les QlineEdit sont remplis et que je clique sur le bouton, les données sont enregistrées dans la base de donnée. Ça c'est bon.
Seulement, j'aimerais qu'à ce moment là, si le nom inscrit dans le QlineEdit est déjà présent dans la colonne "Nom" de ma base de donnée, j'ai un QMessageBox qui s'affiche "client déjà existant".
Cela éviterai les doublons, et avertirai l'utilisateur.
Voici la classe en question, désolé si le code n'est pas lisible, ni argumenté, je n'ai pas le vocabulaire pour bien le faire, vous pouvez sourire ou au contraire vous prendre la tête à deux mains, au choix lol...
Merci d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 class Ui_CreerClient(QtGui.QWidget, Ui_CreerClient): def __init__(self, parent=None): QtGui.QWidget.__init__(self, parent) self.setupUi(self) #Model initialisé depuis la classe Model() self.model = Model() self.cmdEnregister1.clicked.connect(self.inputData) def inputData(self): N = self.lineNom P = self.linePrenom reply = QtGui.QMessageBox.question(self, "Enregistrement...", "Enregistrer ce nouveau client ?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No) if reply == QtGui.QMessageBox.Yes: #La seule méthode que j'ai trouvé pour éviter les champs vides : if (N.text() == "") or (N.text() == " ") or ( N.text() == " ") or (N.text() == " ") or ( N.text() == " ") or (N.text() == " ") or ( N.text() == " ") or (N.text() == " ") or ( N.text() == " "): QtGui.QMessageBox.warning( self, "Erreur...", """Case "Nom" vide !""") return False if (P.text() == "") or (P.text() == " ") or ( P.text() == " ") or (P.text() == " ") or ( P.text() == " ") or (P.text() == " ") or ( P.text() == " ") or (P.text() == " ") or ( P.text() == " "): QtGui.QMessageBox.warning( self, "Erreur...", """Case "Prenom" vide !""") return False #Insertion dans la base de donnée : else: liste = [self.lineNom.text(), self.linePrenom.text()] #...Etc. self.model.insertRows(0, 1) a = 0 while a <= 1: self.model.setData(self.model.index(0, a+1), liste[a]) a+=1 self.model.submitAll() QtGui.QMessageBox.information( self, "Succes...", "Client enregistre !") #Mise à jour des champs du formulaire: self.lineNom.clear() self.linePrenom.clear() self.labelNom_Prenom.clear() self.linePseudo.clear() self.lineMail.clear()
Partager