Hallo zusammen,
das hier ist meine erste Frage im Forum, ich hoffe also, ich mache hier alles richtig, falls nicht, bitte ich um konstruktive Kritik!
Ich habe folgendes Problem:
Ich habe mit python3 und tkinter eine app geschrieben, die final auf dem 7"-Touchscreen laufen soll, und zwar im Vollbild, also in einer Art "KIOSK-Modus".
In der App gibt es auch Entry-Widgets, in die der User Zahlenwerte eintragen kann.
Die App funktioniert wunderbar, es fehlt nur noch der finale Feinschliff: Sobald ein Entry-Widget angeklickt wird, soll das virtuelle Keyboard (z.B. Matchbox oder Florence) in den Vordergrund kommen. Genau das funktioniert leider nicht. Das virtuelle Keyboard (sowohl Matchbox als auch Florence) wird zwar aufgerufen, ist allerdings eine Ebene unter der tkinter-Oberfläche.
Folgende Versuche, das Problem über methods zu beseitigen sind leider gescheitert:
root.lower()
root.attributes("-topmost", False)
Mein rp3 läuft mit raspian und der PIXEL-Desktop-Environment. Ich habe schon den leisen Verdacht, dass das Problem an PIXEL und nicht am Code liegt...
Hier ist ein Minimal-Beispiel, was bei mir den Fehler produziert:
from tkinter import*
import subprocess
import os
root = Tk()
def entry_callback(event):
os.popen('matchbox-keyboard','r',4096)
# example entry widget 1
entry_widget_1 = Entry(root)
entry_widget_1.pack()
# example entry widget 2
entry_widget_2 = Entry(root)
entry_widget_2.pack()
# bind toggleKeyboard function to entry-widget 1 to open florence
entry_widget_1.bind('<FocusIn>',entry_callback)
# allow user to close app via escape button
def close(event):
root.destroy()
root.bind('<Escape>',close)
# resize app to full(!)-fullscreen
root.attributes("-fullscreen",True)
# root window is NOT on top
root.attributes('-topmost', 0)
root.lower()
root.mainloop()
Display More