écran tactile et bouton

astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 - 9 mars 2024 à 07:03
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 - 11 mars 2024 à 18:48

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 !

A voir également:

5 réponses

Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024 44
10 mars 2024 à 19:06

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()
1
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639
Modifié le 11 mars 2024 à 18:54

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

0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
9 mars 2024 à 08:55

bonjour,

ce comportement (2 tap pour cliquer) est-il spécifique à tkinter?

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639
9 mars 2024 à 10:02

hello,

je ne comprends pas la question ^^
je n'ai rien trouvé sur le net concernant cette interogation 

0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024
9 mars 2024 à 12:43

Quand tu utilises ton ordi, par exemple dans un navigateur, tu dois aussi faire 2 taps pour cliquer?

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
10 mars 2024 à 07:55

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.

0
Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024 44
9 mars 2024 à 11:11

Salut,

J'ai également un écran tactile et le comportement est identique que ce soit un tap ou un clic.

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639
10 mars 2024 à 07:58

slt,

ton écran tactile, et les icônes du bureau, c'est une seule tape ?
Moi c'est deux tapes, et les liens une tape, le classique.

Mais ce n'est pas sous Windows le souci, c'est sous python
 

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639
Modifié le 10 mars 2024 à 08:04

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 ^^

0
Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024 44
10 mars 2024 à 10:19

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

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639 > Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024
10 mars 2024 à 10:22

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

0
Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024 44 > astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024
Modifié le 10 mars 2024 à 10:45

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

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639 > Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024
10 mars 2024 à 11:01

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. 

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639 > Diablo76 Messages postés 204 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 30 octobre 2024
Modifié le 10 mars 2024 à 11:39
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
Modifié le 10 mars 2024 à 11:11

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.

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639
Modifié le 10 mars 2024 à 11:39

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 ^^

0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024
10 mars 2024 à 12:23

Quels boutons fonctionnent comment quand tu touches et continue à toucher via l'écran tactile?

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
10 mars 2024 à 14:01

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

0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024
10 mars 2024 à 14:54

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.

0
astuces72 Messages postés 7762 Date d'inscription vendredi 15 janvier 2010 Statut Membre Dernière intervention 15 novembre 2024 1 639 > yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024
10 mars 2024 à 17:40

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.

0