écran tactile et bouton
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 !
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()-
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 ^^
-
-
Contributeur
bonjour,
ce comportement (2 tap pour cliquer) est-il spécifique à tkinter?
-
-
Contributeur@astuces72
Quand tu utilises ton ordi, par exemple dans un navigateur, tu dois aussi faire 2 taps pour cliquer?
-
@yg_be
Non, en fait ça a le même comportement qu'un tactile sous Windows, 2 tapes pour lancer un programme sur le bureau, une tape pour les liens.
-
-
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
-
@Diablo76
merci pour le lien, je vais aller voir.
C'est un mini écran 1024*600 tactile, c'est pour faire un windows en mode kiosque.
il n'y aura aucun autre écran, et la programme/dépannage/gestion... je la fais via bureau à distance avec un autre pc -
@astuces72
Ok, mais il est connecté sur quoi ?? , si c'est sous Windows ou autre, le clic devrait marcher pareil qu'un tap sur le bouton tkinter
-
@Diablo76
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. -
-
-
Contributeur
Quand 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 ^^ -
Contributeur@astuces72
Quels boutons fonctionnent comment quand tu touches et continue à toucher via l'écran tactile?
-
@yg_be
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 -
Contributeur@astuces72
Tu montres le fonctionnement dans tkinter?
Il faut d'abord faire fonctionner cet écran tactile dans Windows, hors ton appli Python. Si Windows réagis au simple tap (poser/déposer) et/ou au "poser et tenir", il y aura peut-être moyen que tkinter puisses traiter cela.
-
@yg_be
oui, c'est sous tkinter, sur le bureau de Windows, c'est pareil pour lancer les programme.
Comme tout écran tactile sous Windows en fait.
-