Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit probleme (tkinter)

Petit probleme (tkinter)

    16 juillet 2019 à 15:23:34


    Bonjour, j'ai un probleme avec la selection d'un seul id dans une boucle mais le probleme c'est a coté du Label "numero commande" sa m'affiche le bon id mais quand je crée un define ou une verification avec "if et else" on me selection tout les id de toute la table voici mon code:

    #coding:utf-8
     
    import tkinter
    from tkinter import messagebox
    import sqlite3
     
    #------------- création de la base de donée -------------
     
    connection = sqlite3.connect('database.db')
    cursor = connection.cursor()
     
    cursor.execute('CREATE TABLE IF NOT EXISTS menu(id INTEGER PRIMARY KEY AUTOINCREMENT ,prix INTEGER NOT NULL ,type TEXT NOT NULL);')
    connection.commit()
    connection.close()
     
     
    #------------- Classes -------------
     
    class main(object):
     
    #------------- page principale -------------
     
        def __init__(self, fenetre):
            self.affichage = fenetre
    
            self.affichage.bind("<KeyPress-c>", self.close)
    
            self.marguerita = tkinter.DoubleVar()
            self.prosciutto = tkinter.DoubleVar()
            self.bolognaise = tkinter.DoubleVar()
            self.boscaliola = tkinter.DoubleVar()
            self.salami = tkinter.DoubleVar()
            self.sole_mio = tkinter.DoubleVar()
            self.hawaienne = tkinter.DoubleVar()
     
            self.marguerita_value = 6.50
            self.prosciutto_value = 7.00
            self.bolognaise_value = 7.50
            self.boscaliola_value = 7.50
            self.salami_value = 7.50
            self.sole_mio_value = 8.00
            self.hawaienne_value = 8.00
     
            self.pizza = tkinter.Frame(self.affichage)
     
            self.marguerita_view = tkinter.Checkbutton(self.pizza, text='marguerita', variable=self.marguerita)
            self.prosciutto_view = tkinter.Checkbutton(self.pizza, text='prosciutto', variable=self.prosciutto)
            self.bolognaise_view = tkinter.Checkbutton(self.pizza, text='bolognaise', variable=self.bolognaise)
            self.boscaliola_view = tkinter.Checkbutton(self.pizza, text='boscaliola', variable=self.boscaliola)
            self.salami_view = tkinter.Checkbutton(self.pizza, text='salami', variable=self.salami)
            self.sole_mio_view = tkinter.Checkbutton(self.pizza, text='sole_mio', variable=self.sole_mio)
            self.hawaienne_view = tkinter.Checkbutton(self.pizza, text='hawaienne', variable=self.hawaienne)
            self.button1 = tkinter.Button(self.pizza, text="AJOUTER", command=self.callback)
            self.button2 = tkinter.Button(self.pizza, text="COMMANDE", command=self.close)
            self.label1 = tkinter.Label(self.pizza)
     
            self.marguerita_view.pack()
            self.prosciutto_view.pack()
            self.bolognaise_view.pack()
            self.boscaliola_view.pack()
            self.salami_view.pack()
            self.sole_mio_view.pack()
            self.hawaienne_view.pack()
            self.button1.pack()
            self.button2.pack()
            self.label1.pack()
            self.pizza.pack()
     
    #------------- page des commandes -------------
     
        def close(self):
            self.pizza.pack_forget()
     
            connection = sqlite3.connect("database.db")
            cursor = connection.cursor()
     
            req = cursor.execute('SELECT * FROM menu')
     
            self.groupe_reponse = tkinter.Frame(self.affichage)
            self.groupe_reponse2 = tkinter.Frame(self.affichage)
     
            for (id_pizza,prix_pizza,type_pizza) in req.fetchall():
                exam = f"numero commande:{id_pizza} - prix:{prix_pizza} - livré:{type_pizza}\n"
     
                if type_pizza == "faux":
                    self.reponse = tkinter.Label(self.groupe_reponse, text=exam, fg='red')
                    self.reponse.pack()
                    self.btn35 = tkinter.Button(self.groupe_reponse, text=id_pizza)
                    self.btn35.pack()
                    if self.btn35:
                        connection = sqlite3.connect("database.db")
                        cursor = connection.cursor()
     
                        req = cursor.execute('SELECT * FROM menu')
     
                        cursor.execute("UPDATE menu SET type = ? WHERE id = ?", ('faux', id_pizza))
                        cursor.execute("UPDATE menu SET type = ? WHERE id = ?", ('vrai', id_pizza))
                        connection.commit()
                        connection.close()
                elif type_pizza == "vrai":
                    self.reponse = tkinter.Label(self.groupe_reponse2, text=exam, fg='green')
                    self.reponse.pack()
                    self.btn36 = tkinter.Button(self.groupe_reponse2,text=id_pizza)
                    self.btn36.pack()
                    if self.btn36:
                        connection = sqlite3.connect("database.db")
                        cursor = connection.cursor()
     
                        req = cursor.execute('SELECT * FROM menu')
     
                        cursor.execute("UPDATE menu SET type = ? WHERE id = ?", ('vrai', id_pizza))
                        cursor.execute("UPDATE menu SET type = ? WHERE id = ?", ('faux', id_pizza))
                        connection.commit()
                        connection.close()
            connection.close()
     
     
            self.button3 = tkinter.Button(self.affichage, text="BACK<-", command=self.open)
            self.groupe_reponse.pack()
            self.groupe_reponse2.pack()
            self.button3.pack()
     
    #------------- cacher la page des commandes -------------
         
        def open(self):
            self.groupe_reponse.pack_forget()
            self.groupe_reponse2.pack_forget()
            self.button3.pack_forget()
            self.pizza.pack()
     
    #------------- achats des produits -------------
     
        def callback(self):
            value_pizza = self.marguerita_value*self.marguerita.get() + self.prosciutto_value*self.prosciutto.get() + self.bolognaise_value*self.bolognaise.get() + self.boscaliola_value*self.boscaliola.get()
            value_pizza2 = value_pizza + self.salami_value*self.salami.get() + self.sole_mio_value*self.sole_mio.get() + self.hawaienne_value*self.hawaienne.get()
            self.label1.config(text=str(value_pizza2))
     
            connection = sqlite3.connect("database.db")
            cursor = connection.cursor()
     
            self.commande = (value_pizza2, "faux")
            cursor.execute('INSERT INTO menu(prix,type) VALUES(?,?)', self.commande)
            connection.commit()
     
            connection.close()
     
            messagebox.showinfo("PIZZA", f"VOTRE COMMANDE A ÈTÈ CRÈE\nPRIX: {value_pizza2} Euro")
     
    #------------- fenêtre principale -------------
     
    windows = tkinter.Tk()
     
    windows.title("Project 1")
    windows.geometry("1080x720")
    windows.minsize(1080, 720)
    windows.maxsize(1080, 720)
    windows.config(background='#bbdfe5')
     
    fenetre_principale = main(windows)
    
    windows.mainloop()



    • Partager sur Facebook
    • Partager sur Twitter

    Petit probleme (tkinter)

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown