Neue GUI-Seiten
Verfasst: Freitag 31. März 2023, 17:21
Hallo,
Ich bin neu im Forum und in meinem hohen Pensionsalter habe ich noch eine Aufgabe gefasst, welche ich mit einem Raspi und Python lösen möchte.
Es handelt sich um ein Sortiergerät, welches ich mit einem Touchscreen
und einem GUI lösen möchte.
Um die einzelnen Sortiergrössen einzugeben, beabsichtige ich, jeweils diese
je auf einer Seite beim GUI einzugeben um damit eine bessere Übersicht
und eine korrekte Abfolge der Eingabe zu erstellen.
Nun mein Problem.
Eine erste Seite kann ich erstellen, jedoch ist mir nicht klar, wie ich die weiteren Seiten Programmieren kann. Wie ist es bei Python. Wird eine neues Skript erstellt und anschliessend entsprechen aufgerufen, oder wird die am Grundskript angehängt?
Auch ist mir die Programmierung nicht bekannt, da ich keine Literatur gefunden habe.
Jede Hilfe ist mir willkommen, besten Dank hierfür.
Hier mein bisher erstellte Skript.
import tkinter as tk
from pathlib import Path
from functools import partial
import json
SORTIERUNG = Path("sortier-einstellung.json")
def auswerte_nusssortierungen(nuss):
if SORTIERUNG.exists():
with SORTIERUNG.open() as input:
stellungen = json.load(input)
for key, value in stellungen.items():
nuss[key].set(value)
def schreibe_datei(nuss):
with SORTIERUNG.open("w") as output:
json.dump({k: v.get() for k,v in nuss.items()}, output)
def gui():
master = tk.Tk()
nuss = {
"#030303": tk.IntVar(),
}
master.title("MASTER SORTIERUNG")
master.geometry ("650x700+600+200")
for row, (color, erka) in enumerate(nuss.items()): # erste Spalte
frame = tk.Frame(master, width=400, height=150, ) #Frame als Platzhalter vom oberen Rand
frame.grid(row=1, column=0, padx=3, pady=3)
frame = tk.Frame(master, width=400, height=150, background=color) #Frame links
frame.grid(row=2, column=0, padx=3, pady=3)
frame = tk.Frame(master, width=260, height=115, background="#ffffff") #Frame rechts mit Slider
frame.grid(row=2, column=0, padx=3, pady=3)
label = tk.Label(master, textvariable=erka,
font="Verdana 47 bold italic", bg="#ffffff")#Grundfarbe Ziffer
label.grid(row=2, column=0, pady=4, padx=4)
frame = tk.Frame(master, width=5, height=150, background="Grey")# zweite Spalte Grundgroesse
frame.grid(row=2, column=1, padx=3, pady=3)
frame = tk.Frame(master, width=800, height=150, background=color)# dritte Spalte breite
frame.grid(row=2, column=2, padx=4, pady=4)
scale = tk.Scale(master, from_=0, to=100, bg=color, resolution=10, #Slider
orient='horizontal', length=680, width=40, sliderlength=40,
showvalue=0, label=" Position 2",
font = "Verdana 30 bold italic", fg = "#ffff00",
variable=erka)
scale.grid(row=2, column=2, padx=3, pady=3)
frame = tk.Frame(master, width=400, height=150, ) #Frame Platzhalter nach Slider
frame.grid(row=4, column=0, padx=3, pady=3)
tk.Button(master, text=' OK und weiter ',
command=partial(schreibe_datei, nuss),
bg="orange",bd=4).grid(columnspan=3, row=6)
auswerte_nusssortierungen(nuss)
tk.mainloop()
if __name__ == "__main__":
gui()
Ich bin neu im Forum und in meinem hohen Pensionsalter habe ich noch eine Aufgabe gefasst, welche ich mit einem Raspi und Python lösen möchte.
Es handelt sich um ein Sortiergerät, welches ich mit einem Touchscreen
und einem GUI lösen möchte.
Um die einzelnen Sortiergrössen einzugeben, beabsichtige ich, jeweils diese
je auf einer Seite beim GUI einzugeben um damit eine bessere Übersicht
und eine korrekte Abfolge der Eingabe zu erstellen.
Nun mein Problem.
Eine erste Seite kann ich erstellen, jedoch ist mir nicht klar, wie ich die weiteren Seiten Programmieren kann. Wie ist es bei Python. Wird eine neues Skript erstellt und anschliessend entsprechen aufgerufen, oder wird die am Grundskript angehängt?
Auch ist mir die Programmierung nicht bekannt, da ich keine Literatur gefunden habe.
Jede Hilfe ist mir willkommen, besten Dank hierfür.
Hier mein bisher erstellte Skript.
import tkinter as tk
from pathlib import Path
from functools import partial
import json
SORTIERUNG = Path("sortier-einstellung.json")
def auswerte_nusssortierungen(nuss):
if SORTIERUNG.exists():
with SORTIERUNG.open() as input:
stellungen = json.load(input)
for key, value in stellungen.items():
nuss[key].set(value)
def schreibe_datei(nuss):
with SORTIERUNG.open("w") as output:
json.dump({k: v.get() for k,v in nuss.items()}, output)
def gui():
master = tk.Tk()
nuss = {
"#030303": tk.IntVar(),
}
master.title("MASTER SORTIERUNG")
master.geometry ("650x700+600+200")
for row, (color, erka) in enumerate(nuss.items()): # erste Spalte
frame = tk.Frame(master, width=400, height=150, ) #Frame als Platzhalter vom oberen Rand
frame.grid(row=1, column=0, padx=3, pady=3)
frame = tk.Frame(master, width=400, height=150, background=color) #Frame links
frame.grid(row=2, column=0, padx=3, pady=3)
frame = tk.Frame(master, width=260, height=115, background="#ffffff") #Frame rechts mit Slider
frame.grid(row=2, column=0, padx=3, pady=3)
label = tk.Label(master, textvariable=erka,
font="Verdana 47 bold italic", bg="#ffffff")#Grundfarbe Ziffer
label.grid(row=2, column=0, pady=4, padx=4)
frame = tk.Frame(master, width=5, height=150, background="Grey")# zweite Spalte Grundgroesse
frame.grid(row=2, column=1, padx=3, pady=3)
frame = tk.Frame(master, width=800, height=150, background=color)# dritte Spalte breite
frame.grid(row=2, column=2, padx=4, pady=4)
scale = tk.Scale(master, from_=0, to=100, bg=color, resolution=10, #Slider
orient='horizontal', length=680, width=40, sliderlength=40,
showvalue=0, label=" Position 2",
font = "Verdana 30 bold italic", fg = "#ffff00",
variable=erka)
scale.grid(row=2, column=2, padx=3, pady=3)
frame = tk.Frame(master, width=400, height=150, ) #Frame Platzhalter nach Slider
frame.grid(row=4, column=0, padx=3, pady=3)
tk.Button(master, text=' OK und weiter ',
command=partial(schreibe_datei, nuss),
bg="orange",bd=4).grid(columnspan=3, row=6)
auswerte_nusssortierungen(nuss)
tk.mainloop()
if __name__ == "__main__":
gui()