image image


image

Tutorial: Erste Schritte mit PySimpleGUI

Nachdem ich die Probleme mit Anaconda-Python, TextMate und macOS Catalina ausgeräumt hatte, konnte ich meine ersten Versuche mit PySimpleGUI starten. Ich hatte dafür ein Tutorial aus dem Handbuch leicht abgewandelt, weil mich in der Hauptsache interessierte, wie UTF-8-fest das Modul ist – ein für GUI-Bibliotheken ja nicht ganz unwichtiges Kriterium.

Und der Screenshot zeigt es: PySimpleGUI zeigt sich in dieser Hinsicht hervorragend. Sowohl der Umlaut in meinem Vornamen wie auch das Emoji werden anstandslos akzeptiert und korrekt wiedergegeben. Ansonsten sagt das kleine Programm noch nicht so viel aus. Interessant ist, daß das Layout listenbasiert ist – jede Zeile ist ein Listenelement, das komplette Layout also eine zweidiemensionale Liste.

Störend finde ich, daß die (Brot-) Schrift in den Widgets (die in PySimpleGUI »Elemente« heißen) so klein ist. Kann man das irgendwo (global) ändern? Für meine alten Augen ist das jedenfalls eine Zumutung.

Die Event Loop ist ähnlich organisiert wie in Pygame: Eine Endlosschleife wird durchlaufen, wartet auf Events (in den meisten Fällen Nutzereingaben), um dann darauf zu reagieren. Hier mein Script für diejenigen unter Euch, die das nachprogrammieren wollen:

import PySimpleGUI as sg

layout = [
          [sg.Text("Wie heißt Du?")],
          [sg.Input(key = "-INPUT-")],
          [sg.Text(size = (40, 1), key = "-OUTPUT-")],
          [sg.Button("Okay"), sg.Button("Quit")]
]

window = sg.Window("Hallo PySimpleGUI", layout)

keep_going = True
while keep_going:
    event, values = window.read()
    
    if event == sg.WINDOW_CLOSED or event == "Quit":
        keep_going = False
    
    window["-OUTPUT-"].update("Hallöchen " + values["-INPUT-"] + "!")

window.close()

Ich weiß nur noch nicht, was mir die seltsame Fehlermeldung Error performing wm_overrideredirect sagen will. Auf den Lauf des Programms scheint sie keinen Einfluß zu haben, daher muß ich hier wohl einmal bei Stack Overflow nachfragen. Still digging!


1 (Email-) Kommentar


Den Fehler habe ich hier nicht.
System 10.13.6 mit Python 3.9.6.
Du kannst einen font Parameter übergeben: window = sg.Window("Hallo PySimpleGUI", layout, font = (sg.DEFAULT_FONT, 22))

– Axel K. (Kommentieren) (#)


(Kommentieren) 

image image



Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter Rentner, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.

Der Besuch dieser Webseite wird aktuell von der Piwik Webanalyse erfaßt. Hier können Sie der Erfassung widersprechen.

Diese Seite verwendet keine Cookies. Warum auch? Was allerdings die iframes von Amazon, YouTube und Co. machen, entzieht sich meiner Kenntnis.


Werbung

Diese Spalte wurde absichtlich leergelassen!


Werbung


image  image  image
image  image  image


image