pynput.mouse.listener Probleme die Werte herauszubekommen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
soltana
User
Beiträge: 2
Registriert: Mittwoch 22. Mai 2019, 15:05

Hallo ich habe folgenden Code:

Code: Alles auswählen

from pynput import mouse

class MouseListener:
    def __init__(self):
        self.pressed_x = -1
        self.pressed_y = -1
        self.released_x = -1
        self.release_y = -1

    def on_click( x, y, button, pressed):
        if pressed:
            print("gedrueckt", x, y)
            #self.pressed_x = x
            #self.pressed_y = y
        elif pressed == 0:
            print("nicht gedrueckt", x, y)
            #self.released_x = x
            #self.released_y = y
            return False

    def run(self):
        with mouse.Listener( on_move = None,
                             on_click = self.on_click,
                             on_scroll = None) as listener:
            listener.join()
            
Wenn ich nun run() aufrufe bekomme ich die Positionen des Mausclicks angezeigt. Wie bekomme ich diese Werte aber in eine Klassenvariable geschrieben?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du hast self als erstes argument vergessen in deinem on_click.
soltana
User
Beiträge: 2
Registriert: Mittwoch 22. Mai 2019, 15:05

Oh man herzlich willkommen in python.

Ich wollte schon schreiben, dass ich dies schon mal versucht habe und nur Fehlermeldungen bekommen habe. Ich habe es nochmal nochmal gemacht, damit ich die Fehlermeldungen bekomme aber jetzt klappt es. Da waren die Fehlermeldungen wohl was anderes...

Erstmal vielen Dank.

Gibt es noch einen geschickteren Weg an die Werte von x und y zu kommen? Mir ist nur dieser Weg eingefallen, dass ich alles in einen Klasse packe und dann in die Klassenvariablen schreibe.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Soweit ich sehen kann ist das erstmal ok, aber ob es Sinn in einem größeren Kontext hat kann man so nicht sagen.
Benutzeravatar
__blackjack__
User
Beiträge: 13003
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@soltana: Vielleicht noch als Anmerkung: Das sind keine Klassenvariablen sondern Instanzvariablen.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten