Menü erstellen und GUIs anzeigen

Fragen zu Tkinter.
Antworten
Mahon
User
Beiträge: 1
Registriert: Montag 20. August 2018, 10:33

Hallo an alle
Ich bin. Neu hier im. Forum weil ich im Internet nichts finden konnte was hilft.

Deshalb schreib ich mein. Problem direkt in einer Frage und hoffe das jemand etwas dazu weis :?:

ich arbeite gerade an meinem Projekt auf meinem Raspi 3b und versuche eine gui zu erstellen.

Ich habe bisher ein kleines Fenster geschrieben

from tkinter import*
import tkinter as Tk
root=Tk()
root.geometry('400x300')
root. mainloop()

Die Software soll später einen Lüfter steuern können sowie verschiedene Sensor Werte auswerten und grafisch darstellen.

Dazu brauche ich ein Menü wo ich die verschiedenen Bereiche einsehen kann.
ich möchte später zwischen den einzelnen Bereichen bzw GUIs zu Lüfter und sensor mit den Menü Buttons wechseln können und diese in einem großen hauptlabel im Hauptfenster anzeigen lassen.

Das Problem ist einfach ich kann zwar einen einfachen menu Button erstellen aber ich verstehe nicht wie ich daruber eine andere GUI in ein Label ausgeben soll.
Ich habe die letzten im. Internet gesucht aber habe nichts gefunden was mein Problem. Löst.

Deshalb frage ich hier Bin mittlerweile Bisschen verzweifelt. Hat jemand ein Beispiel zu so etwas oder eine Idee?
Benutzeravatar
__blackjack__
User
Beiträge: 13007
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Mahon: Das ist ein bisschen vage formuliert. Wenn die verschiedenen Anzeigen alle gleich aussehen, sich also nur durch den Text unterscheiden, dann würde man einfach immer den Text enstprechend ändern. Wenn die Anzeigen aus mehreren unterschiedlich angeordneten Komponenten bestehen, könnte man die in unterschiedlichen Frames unterbringen, die alle in der selben `grid()`-Zelle stehen und wo man immer die aktuell angezeigte nach oben holt. Sofern ein `tkinter.ttk.Notebook` die Aufgabe nicht schon erfüllt. Denn dann braucht man sich so etwas nicht selbst programmieren.

Den Sternchen-Import solltest Du Dir übrigens gar nicht erst angewöhnen. Und auf Modulebene sollte nur Code stehen, der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion mit dem Namen `main()`.

Dein Code funktioniert auch gar nicht, denn Du versuchst ein Modul (`tkinter`) aufzurufen, was nicht funktioniert:

Code: Alles auswählen

In [12]: import tkinter as Tk

In [13]: Tk()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-13-2727948544d0> in <module>()
----> 1 Tk()

TypeError: 'module' object is not callable
Das sollte wohl so aussehen:

Code: Alles auswählen

#!/usr/bin/env python3
import tkinter as tk


def main():
    root = tk.Tk()
    root.geometry('400x300')
    root.mainloop()


if __name__ == '__main__':
    main()
Für jede nicht-triviale GUI braucht man objektorientierte Programmierung (OOP). Ich würde empfehlen das erst zu lernen, bevor Du Dich an eine GUI setzt.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten