écran tactile et bouton
astuces72 Messages postés 7769 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
Je débute sur Python et j'ai une question concernant l'utilisation de tkinter sur un écran tactile sous Windows. Est-il possible de déclencher une action avec une seule "tape" au doigt et garder le doigt pour continuer l'action ?
Je suis en partage de bureau à distance, lorsque j'utilise ma souris pour cliquer sur un bouton, tout fonctionne. Cependant, sur l'écran tactile, je suis obligé de faire deux tapes avec mon doigt.
Le problème est que cette action déclenche un relais, et il n'est pas intuitif de devoir faire deux tapes. Idéalement, le relais devrait s'enclencher lorsque je pose mon doigt et se couper lorsque je le retire, comme cela fonctionne avec la souris.
Auriez-vous une solution à ce problème ?
Merci d'avance !
- écran tactile et bouton
- Double ecran - Guide
- Pavé tactile bloqué - Guide
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Comment faire une capture d'écran sur un samsung sans bouton ? - Guide
- Retourner ecran pc - Guide
5 réponses
Peux-tu installer kivy :
pip install kivy
Et tester ce script :
import kivy from kivy.app import App from kivy.uix.button import Button from kivy.uix.relativelayout import RelativeLayout from kivy.config import Config Config.set('graphics', 'width', '400') Config.set('graphics', 'height', '200') # class in which we are creating the button class ButtonApp(App): def build(self): self.title = "Test Touch" relative_layout = RelativeLayout() button1 = Button(text='Click Me!', size_hint =(.2, .2), pos_hint ={'center_x':.5, 'center_y':.5}, on_press=self.pressed, on_release=self.released, ) relative_layout.add_widget(button1) return relative_layout def pressed(self, event): print("button pressed") def released(self, event): print("button released") root = ButtonApp() root.run()
bonjour,
ce comportement (2 tap pour cliquer) est-il spécifique à tkinter?
Salut,
J'ai également un écran tactile et le comportement est identique que ce soit un tap ou un clic.
la partie qui actionne mes relais.
# bouton de boisson est pressé def on_boisson_pressed(boisson): relay_num, port_com = boisson_relais.get(boisson, (None, None)) if relay_num is not None and port_com is not None: activate_relay(relay_num, port_com, boisson) else: print(f"Erreur: Pas de correspondance de relais pour la boisson {boisson}") # bouton de boisson est relâché def on_boisson_released(boisson): relay_num, port_com = boisson_relais.get(boisson, (None, None)) if relay_num is not None and port_com is not None: deactivate_relais(relay_num, port_com, boisson) etat_label.config(text="") # Met à jour le texte else: print(f"Erreur: Pas de correspondance de relais pour la boisson {boisson}") button_boisson = tk.Button(frame_boissons, image=photo_boisson, borderwidth=0,highlightthickness=0, padx=20, pady=20, bg="black") button_boisson.image = photo_boisson button_boisson.bind("<ButtonPress>", lambda event, b=boisson: on_boisson_pressed(b)) button_boisson.bind("<ButtonRelease>", lambda event, b=boisson: on_boisson_released(b))
Ce code fonctionne très bien avec la souris en bureau à distance, un seul clic, mais une fois sur l'écran tactile, je suis obligé de faire deux tapes.
Une solution pour activer quand je pose le doigt, et se désactiver quand je l'enlève ?
Merci ^^
Salut,
Que définis-tu par écran tactile ?? Une tablette ??
Si c'est le cas, c'est peut-être normal, le touchscreen est surement géré différemment.
Je te conseille de regarder Kivy qui lui est prévu pour.
https://kivy.org/doc/stable-1.10.1/gettingstarted/installation.html
sur un Windows.
Le clic réagi comme les icônes sur le bureau de Windows, 2 tapes...
Tous les autres boutons ont des fonctions différentes, et ils fonctionnent au simple tape/relâche par ce que c'est le but d'un bouton, un clic et relâche, ce qui fonctionne parfaitement avec la souris, normal.
Mais moi, il me faut une action à la tape= mise en marche du relais, relâche = arrêt relais.
Ce qui fonctionne parfaitement avec la souris, mais là, pas sur le tactile.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionQuand tu poses ton doigt sans le retirer immédiatement, c'est une action de type "press and hold". Il semble que certains écrans tactiles interpretent cela comme un clic droit. Tu dois aller voir dans les options de ton écran tactile, sous Windows.
De toutes façons, je pense que tkinter n'a aucune influence sur cela, c'est du côté des paramètres ou du pilote de l'écran tactile que tu dois chercher.
Les boutons fonctionnent bien quand je tape, je garde la tape et que je glisse mon doigt sur l'écran tout en gardant le doigt appuyé...
Alors là je doute d'avoir une quelconque possibilité de jouer sur autre chose avec cet écran...
Tempi, je vais voir pour faire autrement.
https://biqu.equipment/collections/lcd/products/bigtreetech-hdmi5-v1-0-hdmi7-v1-0?variant=39984058138722
HDMI7
en tout cas, Merci à toi ^^
Les boutons qui ne fonctionnent pas quand je garde le doigt ^^
Si je garde le doigt, il ne se passe rien, mais si je déplace mon doigt, ça fonctionne comme il faudrait
une vidéo de ce qu'il se passe :
Double tape ça fonctionne.
Simple tape, il ne se passe rien.
Simple tape et glissement du doigt, ça fonctionne.
https://youtube.com/shorts/NZg9WC4qIyY
Une norme merci à toi, ça fonctionne...Mais quel bordel kivy
Autant avec tkinter c'était la misère pour la disposition des boutons, que là...je n'ai même pas réussi à faire mon affichage graphique pareil que dans Tkinter... juste rapproché.
j'utilisais l'IDLE Shell de python pour executer mes script, eh bien va savoir pourquoi, impossible de fermer mon script, que ce soit par un bouton ou la croix de la fenêtre, obliger de lancer le script en mode DOS.
Je hais Python, mais imposé de l'utiliser pour mes cartes relais USB.
Il faut dire qu'il y a 15 jours, je savais même pas que ça existait ^^
si tu as besoin d'une modélisation 3D et que tu ne sais pas faire, demande-moi ^^
En tout cas, la tape unique fonctionne bien, encore merci ^^
https://youtube.com/shorts/HyHduDbTTdQ?feature=share