Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:gui_mit_tkinter

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
schule:gui_mit_tkinter [2019-12-21 14:00] – [Grafische Programmierung] owncloud link enternt. marco.bakeraschule:gui_mit_tkinter [2024-01-28 17:57] (aktuell) – mv pintman
Zeile 1: Zeile 1:
-====== GUI mit tkinter ====== +Verschoben nach [[edu:GUI mit tkinter]].
- +
-In [[Python]] lassen sich einfache grafische Benutzeroberflächen (GUI) mit dem Modul ''tkinter'' erstellen. Wir wollen dies an einem kleinen Beispiel durchspielen. +
- +
-{{:schule:prog:tkinter-demo.png?nolink|}} +
- +
-In der Abbildung sind ein Button, ein Eingabefeld (Entry) und ein Label abgebildet. Zunächst trägt man seinen Namen in das Textfeld ein. Bei einem Klick auf den Button wird man mit seinem Namen begrüßt. +
- +
-Es folgt der Quelltext. +
- +
-<code python> +
-from tkinter import * # Alle Funktionen aus tkinter importieren +
- +
-class App: +
- +
-    def __init__(self): +
-        fenster = Tk()                  # Fenster öffnen +
-        fenster.title("tkinter Demo"  # Titel des Fensters festlegen +
- +
-        button = Button( +
-            fenster, text="OK", command=self.button_click)  # Button erstellen +
-                                                            # Bei einem Klick wird die Methode button_click ausgeführt +
-        button.pack()                                       # Button in Fenster positionieren +
-         +
-        self.entry = Entry(fenster) # Eingabefeld erstellen +
-        self.entry.insert(0, "Name")# Einen Text einfügen +
-        self.entry.pack()           # Das Eingabefeld im Hauptfenster positionieren +
- +
-        self.lbl = Label(fenster, text="Name eingeben") # Label mit Test erstellen +
-        self.lbl.pack()                                 # Label im fenster positionieren +
-         +
-        fenster.mainloop() +
- +
-    def button_click(self): +
-        eingabe = self.entry.get()                  # Test aus dem Eingabefeld auslesen +
-        self.lbl.configure(text="Hallo " + eingabe) # Neuen Text setzen +
- +
- +
- +
-app = App() # Die App wird erstellt und automatisch gestartet +
- +
-</code> +
- +
-Das [[http://effbot.org/tkinterbook/tkinter-index.htm|tkinterbook]] beschreibt viele weitere Komponente von tkinter zeigt an Beispielen, wie man daraus eine einfache GUI erstellen kann. In dem Buch //Raspberry Pi -- das umfasssende Handbuch//, Kap. 20.9 (Grafische Benutzerschnittstelle mit tkinter) wird die Verwendung mit konkreten Beispielen beschrieben. Schließlich findet sich in der [[http://infohost.nmt.edu/tcc/help/pubs/tkinter/tkinter.pdf|tkinter Referenz]] eine ausführliche Beschreibung. +
- +
-===== Grafische Programmierung ===== +
- +
-Die grafische Programmierung erfolgt mit Hilfe des ''Canvas''-Widget. Ein Einführung über dessen Benutzung steht in "Kapitel 8.3.2: Die Klasse Canvas" in dem Buch //Raspberry Pi programmieren mit Python//. +
- +
-===== Weitere Frameworks ===== +
- +
-Neben tkinter gibt es eine Menge weiterer GUI-Frameworks für die Erstellung von GUI-Anwendungen. Die [[https://docs.python.org/3/faq/gui.html|offizielle FAQ zu Python 3]] listet einige auf. Für PyQt gibt es etwa ein [[http://zetcode.com/gui/pyqt5/firstprograms/|Tutorial]], das die Verwendung des Qt-Framework für Python erläutert. +
- +
-Vielleicht ist aber auch eine Fensteranwendung gar nicht die richtige Wahl. Eine Anwendung kann ja z.B. auch über den Browser bedient werden. Hier gibt es einfache Web-Frameworks wie Flask oder, noch einfacher, Bottle oder schließlich Django für die professionelle Web-Entwicklung. +
- +
-===== Links ===== +
- +
-  * [[https://www.tutorialspoint.com/python/python_gui_programming.htm|Python GUI Programming]] - Tutorial über tkinter. +
-  * [[https://likegeeks.com/python-gui-examples-tkinter-tutorial/|Python GUI examples]] - ein weiteres Tutorial. +
-  * Das [[https://github.com/pintman/pixelflut|Pixelflut]]-Projekt erlaubt es, einen Bildschirm über das Netz freizugeben. Einzelne Pixel können mit TCP-Paketen gesetzt werden. +
-  * [[https://sw101.tbs1.de/pysimplegui/|PySimpleGUI]] setzt auf tkinter auf und ermöglicht eine einfachere Art der Programmierung.+
schule/gui_mit_tkinter.1576933234.txt.gz · Zuletzt geändert: 2019-12-21 14:00 von marco.bakera