Seite 1 von 2

Windows-Taste abfragen

Verfasst: Dienstag 22. Oktober 2019, 16:48
von Der_Scripter
Hallo!

ich möchte gerne wissen ob es mit der .bind()-Methode möglich ist die Windows taste abzufragen.

Danke im voraus,
Der_Scripter

Re: Windows-Taste abfragen

Verfasst: Dienstag 22. Oktober 2019, 17:06
von __blackjack__
Ja, ist es. 😎

Re: Windows-Taste abfragen

Verfasst: Dienstag 22. Oktober 2019, 17:24
von __deets__
Mit diesem Snippet

Code: Alles auswählen

import tkinter as tk

def test(event):
    print('keysym:', event.keysym, event.state)

root = tk.Tk()

root.bind('<Key>', test)

root.mainloop()
kannst du rausfinden, woran du binden musst. Wenn das (wie bei meinem Mac) keine symbolischen Namen ausspuckt fuer Modifier, dann kannst du die gleiche Methodik benutzen & einfach filtern nach event.state - das sind Nummern bei mir, fuer die verschiedenen Modfier-Tasten.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:09
von Der_Scripter
Danke!

Der keysym lautet "Win_L".
Wie kann man machen, dass das Windows-Menü sich aber nicht öffnet?

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:11
von __deets__
Ich denke nicht, dass du das kannst. Das faengt das System parallel dazu ab.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:16
von __blackjack__
Unter Linux hat man das Problem das einige Anwender sich die Compose-Taste auf eine Windows-Taste legen (bei mir ist das eine Tux-Taste :-)) und damit die Anwendung die auch nicht mehr zu sehen bekommt.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:17
von Der_Scripter
Schade...

Ich hab ein Entry in dem ein Text stehen soll. Sobald ich aber etwas anderes reinschreibe soll dieser text verschwinden.
Hab es schon mit insert() und dann .config() probiert klappt aber leider nicht :(

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:23
von __deets__
Verstehe ich nicht. Was hat das mit der Windows-Taste zu tun? Und was willst du erreichen - sowas wie man auf Webseiten sieht, die in Eingabefeldern einen Hilfstext zeigen?

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:26
von Der_Scripter
Genau sowas...
Sry das ich im Falschen Thread bin, aber dachte das könnte man noch schnell beantworten.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:29
von __deets__
Dafuer gibt es das FocusIn-Event, und darin musst du dann den Entry-Text halt loeschen. Wenn das nicht reicht, dann bitte ein minimales & funktionales Beispiel bauen, welches das Problem illustriert.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:43
von Der_Scripter
Wenn ich mich irgendwo anmelde, dann steht da z.B. Email-Adresse (in grau) aber sobald ich ein Buchstabe eintippe, steht es nicht mehr im Entryfeld.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:49
von sparrow
Was ist denn "Irgendwo"?
Reden wir von einer herkömmliche GUI? Reden wir von einer Webseite?
Von einer herkömmlichen GUI erwarte ich, dass der Inhalt makiert wird, wenn ich mit TAB hinein springe und sonst nicht.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 14:52
von __deets__
@Der_Scripter: ich habe dich schon verstanden. Meine Antwort bleibt gleich: du musst den Text loeschen, sobald das Widget den Focus *das erste mal* bekommen hat. Danach natuerlich nicht mehr.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:12
von Der_Scripter
Habe noch nie mit Focus gearbeitet...
Wie bekomme ich das denn heraus ob das "Entryfeld" markiert ist?

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:13
von __deets__
Ich habe dir das doch geschrieben. Es gibt ein FocusIn-Event. Genauso wie auch jedes andere Event, fuer das du dich mit bind registrieren kannst. Wenn du schon weisst, wie man ein key-Event registriert, dann ist das doch kein Unterschied?!

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:17
von Der_Scripter
Das hier klappt nicht:

Code: Alles auswählen

           
            test.bind("<FocusIn>", self.update)
            window.mainloop()

    def update(self):
        test.insert(END, "")
Ich finde den Fehler nicht!!

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:20
von Der_Scripter
Hab die klammern vergessen :( :( :(

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:21
von __deets__
Was heisst das jetzt? Jetzt geht es? Der Code oben geht bei mir auch nicht - siehe "ein minimales funktionsfaehiges Beispiel", was ich ja auch schon erwaehnt habe.

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:24
von Der_Scripter

Code: Alles auswählen

test.bind("<FocusIn>", self.update)
wird zu

Code: Alles auswählen

test.bind("<FocusIn>", self.update())

Re: Windows-Taste abfragen

Verfasst: Mittwoch 23. Oktober 2019, 16:35
von __deets__
Das ist bestimmt nicht richtig. Das Argument darf nicht aufgerufen werden, sondern muss ein callable sein.