Schaltschrank Heizungssteuerung


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Python 3 - Benutzeroberfläche mit Tkinter
Fenster anlegen

Mit dem Modul Tkinter stellt Python ein Werkzeug zur Erstellung von graphischen Benutzeroberflächen zur Verfügung. Das Modul zählt zum Lieferumfang von Python und ist standardgemäß installiert. Bei grafischen Benutzeroberflächen handelt es sich um Programme, die sich gewöhnlich in einer Endlosschleife befinden und auf externe Ereignisse warten. Erfolgt eine Tastatureingabe oder es wird vom Benutzer etwas angeklickt, wird das Programm oder der zuständige Teil des Programms ausgeführt. Anschließend geht das Programm in die Endlosschleife zurück und wartet auf weitere Ereignisse. Die Endlosschleife wird mit "main.loop" definiert. Das Fundament der Bedieneroberfläche ist ein Fenster, in dem alle Ereignis-Elemente untergebracht werden.

Fenster generieren

Um ein Fester zu öffnen werden nur wenige Programm-Zeilen benötigt. Beispiel:

# --------------------------------------------------------------- 
from tkinter import*

Hauptfenster = Tk()

Hauptfenster.mainloop()
        

Ergebnis:

fenster.jpg


Fenster konfigurieren

Mit einigen Parametern kann das Fenster nach Wunsch gestaltet werden (Titel, Hintergrundfarbe, Größe, Position). Beispiel:

# --------------------------------------------------------------- 
from tkinter import*

Hauptfenster = Tk()
Hauptfenster.title ('Mein Fenster')
Hauptfenster.config (background='#005EBC')
Hauptfenster.geometry ('1362x700+0+0')

Hauptfenster.mainloop()
        

Ergebnis:

Fenster_konfiguriert


+ Bild

Mit Hilfe von "Label" kann in einem Fenster ein Bild oder Text positioniert werden. Nachfolgend wird ein Bild hinzugefügt und mit 'place' positioniert. Beispiel:

# ---------------------------------------------------------------
from tkinter import*

Hauptfenster = Tk()
Hauptfenster.title ('Mein Fenster')
Hauptfenster.config (bg='#005EBC')
Hauptfenster.geometry ('1362x700+0+0')

# Ein Bild wird hinzugefügt 
Grafik = PhotoImage(file='MeinBild.gif', width=185, height=180)
Bild = Label(Hauptfenster,
             image=Grafik,
             bg='white')
Bild.place (x=30, y=10, width=250, height=180)

Hauptfenster.mainloop()
        

Ergebnis:

Fenster mit Bild


+ Text

Ähnlich verfährt man mit Text. Beispiel:

# --------------------------------------------------------------- 
from tkinter import*
    
Hauptfenster = Tk()
Hauptfenster.title ('Mein Fenster')
Hauptfenster.config (bg='#005EBC')
Hauptfenster.geometry ('1362x700+0+0')

# Ein Bild wird hinzugefügt 
Grafik = PhotoImage(file='MeinBild.gif', width=185, height=180)
Bild = Label(Hauptfenster,
             image=Grafik,
             bg='white')
Bild.place (x=30, y=10, width=250, height=180)

# Text wird hinzugefügt 
Wie_gehts = Label(Hauptfenster,
                  font=("Arial 70 bold"),
                  bg='#005EBC',
                  fg="yellow",
                  bd=10,
                  relief=RIDGE,
                  text="Hi, wie geht's?")
Wie_gehts.place (x=200, y=220, width=962, height=230)

Hauptfenster.mainloop()
        

Ergebnis:

Fenster mit Text


+ Datum

Um die aktuellen Zeiteingaben zu ermitteln, wird zunächst das Modul 'time' importiert. Mit time.ctime werden die aktuellen Zeitdaten ermittelt. Ein Zähler sorgt einmal pro Sekunde für Aktualisierung der Anzeige. Beispiel:

# --------------------------------------------------------------- 
from tkinter import*
import time

def Fenster_Inhalt():
    Aktuell = time.ctime()
    DatumZeit.config(text=Aktuell)

def Zähler(counter = 0):
    counter += 1
    Aktuell = time.ctime()
    DatumZeit.config(text=Aktuell)
    Hauptfenster.after (1000, Zähler, counter)
    
Hauptfenster = Tk()
Hauptfenster.title ('Mein Fenster')
Hauptfenster.config (bg='#005EBC')
Hauptfenster.geometry ('1362x700+0+0')

# Ein Bild wird hinzugefügt 
Grafik = PhotoImage(file='MeinBild.gif', width=185, height=180)
Bild = Label(Hauptfenster,
             image=Grafik,
             bg='white')
Bild.place (x=30, y=10, width=250, height=180)

# Text wird hinzugefügt 
Wie_gehts = Label(Hauptfenster,
                  font=("Arial 70 bold"),
                  bg='#005EBC',
                  fg="yellow",
                  bd=10,
                  relief=RIDGE,
                  text="Hi, wie geht's?")
Wie_gehts.place (x=200, y=220, width=962, height=230)

# Label mit Datum 
DatumZeit = Label(Hauptfenster, font=("Arial 30 bold"),
              width=40,
              height=3, bg="red",
              fg="white",
              text="OK")
DatumZeit.place(x=0, y=570, width=1362, height=80)

Fenster_Inhalt()
Zähler()

Hauptfenster.mainloop()
        

Ergebnis:

Fenster mit Datum



Kurzvideo



Kurz notiert

after(ms, fkt)
Aufruf einer Funktion fkt nach ms Millisekunden.
config
Mit der Methode können mehrere Parameter (Optionen) eines bereits existierenden Widgets verändert werden. Beispiel:
MeinText = Label (Hauptfenster, font=('Arial 30 bold'), text='Text davor')
Meintext.config (font=('Arial 15 bold'), text='Text danach')
bd
(oder borderwidth), Rahmenbreite in Pixel
bg
(oder background), Hintergrundfarbe
fg
(oder foreground), (Vordergrundfarbe) Textfarbe
Farben
Die Farben für Hintergrund und Text können frei gestaltet werden. Für oft vorkommende Farben gibt es vordefinierte Strings: 'black', 'blue', 'cyan', 'green', 'magenta', 'red', 'white', 'yellow'.
Beispiel: Label (Hauptfenster, bg = 'yellow')
Darüber hinaus kann man die Mischung aus Rot, Grün und Blau als Hexadezimalzahl mit Doppelkreuz vorgeben: #003BA5.
Beispiel: Label (Hauptfenster, bg = '#005EBC')
font
Schrifttyp. Die Schriftart kann mit drei Parametern festgelegt werden:
1 – Schrift-Familie wie Arial, Courier, System, Times, Verdana usw.
2 – Größe
3 – Stil. Hier stehen bold (fett), italic (kursiv), underline (unterstrichen) und overstrike (durchgestrichen) zur Verfügung.
Beispiel: Label(Hauptfenster, font=('Comic Sans MS', 25, 'bold'))
height
Höhe in Pixel
Beispiel: MeinText = Label (Hauptfenster, width=50, height=20, text='Alles klar?')
image
Name des Bildes
justify
Ausrichtung des Textes. Es stehen CENTER oder 'center' (zentriert), LEFT oder 'left' (links) und RIGHT oder 'right' (rechts) zur Verfügung.
Beispiel:
MeinText="""Das ist Zeile 1
das ist Zeile 2
und endlich die dritte"""
Label (Hauptfenster, text=MeinText, justify='left')
pack(), place(), grid()
Methoden, mit denen ein Widget positioniert und sichtbar gemacht wird.
padx
Leerer Raum in Pixel rechts und links.
pady
Leerer Raum in Pixel oben und unten.
relief
Form des Rahmens. Es stehen SUNKEN oder 'sunken', RAISED oder 'raised', GROOVE oder 'groove', RIDGE oder 'ridge' und FLAT oder 'flat' zur Verfügung.
width
Breite in Pixel
Beispiel: MeinText = Label (Hauptfenster, width=150, height=120, text='Alles klar?')


Python 3 - Einführung:




Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz