Bonjour pour mon projet de cette année je dois concevoir une interface graphique avec python possédant plusieurs fenêtres. Pour naviguer entre ces fenêtres je veux utilisé un détecteur de geste connecté à arduino qui me renvoi gauche ou droite en fonction de la direction de main de l'utilisateur.
j'ai déjà réussi à connecté python et arduino et j'arrive à récupérer les valeurs du détecteur sur python mon problème est que je ne sais pas comment dire à ma fenêtre python que lorsqu'elle reçoit gauche elle renvoie la fenêtre précédente, droite la fenêtre suivante.
pour l'instant python le fait mais avec des clic. Mon code pour afficher l'interface graphique est le suivant
import tkinter as tk
from PIL import ImageTk, Image
LARGE_FONT = ("verdana",12)
class SeaofBTCapp(tk.Tk):
def __init__(self,*arg,**kwargs):
tk.Tk.__init__(self,*arg,**kwargs)
container = tk.Frame(self)
container.pack(side="top", fill="both", expand = True)
container.grid_columnconfigure(0, weight = 1)
self.frames = {}
for F in(StartPage, PageOne):
frame = F(container, self)
self.frames[F] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self,cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(tk.Frame):
def __init__(self, parent, controller):
tk.Frame.__init__(self,parent)
label = tk.Label(self, text="Start Page", font = LARGE_FONT)
label.pack(pady=10,padx=10)
button = tk.Button(self , text="Visite p1",
command = lambda:controller.show_frame(PageOne))
button.pack()
class PageOne(tk.Frame):
def __init__(self,parent,controller):
tk.Frame.__init__(self, parent)
label = tk.Label(self,text ="Page one" ,font =LARGE_FONT)
label.pack(pady=10,padx=10)
button1=tk.Button(self, text="Back to home",
command=lambda: controller.show_frame(StartPage))
button1.pack()
app = SeaofBTCapp()
app.mainloop()
Et le code me permettant de récupérer les valeurs d'Arduino est le suivant
import serial
"""ouverture de la liaison série"""
try:
arduino = serial.Serial('COM12',timeout =1)
except:
print("error port")
"""initialisation des variables"""
valeur=""
compt=0
"""réception des données"""
while compt<4:
valeur=str(arduino.readline())
valeur=valeur[2:]
valeur=valeur[:-5]
print(valeur)
compt+=1
merci d'avance.