From b73ae42745284a58cdf3e0ef457d9dc7eb25ac17 Mon Sep 17 00:00:00 2001
From: seyffejn <55194230+seyffejn@users.noreply.github.com>
Date: Tue, 9 Jun 2020 15:13:00 +0200
Subject: [PATCH] GUI update
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Große Änderung:
1) Aufteilung in links u rechts, statt l,r und beide
2) Tonänderungen mittels größerer Schieberegler realisiert
3) Alle Widgets mit Funktionen verbunden
4) farbige PLAY & STOP Button hinzugefügt, bisher ohne Funktion
5) Wenn man Speichern drückt, wird erst geprüft ob man einen Namen eingegeben hat
6) Funktionalität linkes/rechtes Ohr auf jeweils Anderes implementiert
7) Viele kleine visuelle Änderungen
---
.gitignore | 4 +
TinnitusAnalyse/.idea/dictionaries/Julian.xml | 12 +
TinnitusAnalyse/.idea/workspace.xml | 113 ++++--
TinnitusAnalyse/TinnitusAnalyse_GUI.py | 340 ++++++++++++------
4 files changed, 339 insertions(+), 130 deletions(-)
create mode 100644 .gitignore
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..15fe31b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+
+TinnitusAnalyse/.idea/dictionaries/Julian.xml
+TinnitusAnalyse/.idea/workspace.xml
+TinnitusAnalyse/eggs.csv
diff --git a/TinnitusAnalyse/.idea/dictionaries/Julian.xml b/TinnitusAnalyse/.idea/dictionaries/Julian.xml
index 1023142..ee120ee 100644
--- a/TinnitusAnalyse/.idea/dictionaries/Julian.xml
+++ b/TinnitusAnalyse/.idea/dictionaries/Julian.xml
@@ -2,18 +2,30 @@
audioausgabe
+ bandbreite
beide
beiden
+ definieren
frequenz
+ kommentare
lautstärke
linkem
+ linken
linkes
+ mittel
+ mittelfrequenz
nachname
ohren
rauschen
+ rauschens
rechtem
+ rechten
+ rechter
rechtes
+ rechts
+ variablen
vorname
+ zwischen
\ No newline at end of file
diff --git a/TinnitusAnalyse/.idea/workspace.xml b/TinnitusAnalyse/.idea/workspace.xml
index 052a5c0..f7d9086 100644
--- a/TinnitusAnalyse/.idea/workspace.xml
+++ b/TinnitusAnalyse/.idea/workspace.xml
@@ -2,9 +2,7 @@
-
-
@@ -15,14 +13,35 @@
-
+
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -31,7 +50,7 @@
-
+
@@ -50,7 +69,14 @@
ttk
mainFrame
+ aktLabelFrame
linkerFrame
+ Var
+ Entry
+ Scale
+ linker
+ für alle
+ scale_lautstärke_links_change
C:\Users\Julian\PycharmProjects\TinnitusAnalyse
@@ -67,10 +93,10 @@
-
-
-
-
+
+
+
+
@@ -102,7 +128,28 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -127,6 +174,7 @@
+
@@ -145,15 +193,14 @@
-
-
-
+
+
@@ -189,29 +236,39 @@
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/TinnitusAnalyse/TinnitusAnalyse_GUI.py b/TinnitusAnalyse/TinnitusAnalyse_GUI.py
index 1d59999..d9950a7 100644
--- a/TinnitusAnalyse/TinnitusAnalyse_GUI.py
+++ b/TinnitusAnalyse/TinnitusAnalyse_GUI.py
@@ -1,136 +1,272 @@
-from tkinter import * # all the classic tkinter stuff
-from tkinter.ttk import Frame, Label, Button, LabelFrame, Combobox, Style, Checkbutton, Entry, Panedwindow
-
-# FUNKTIONEN DIE DURCH GUI KLICKS AUSGEFÜHRT WERDEN---------------------------------------------------------------------
-
-def button_rauschen_minus_press():
- print("Rauschen_Press_Plus pressed")
+from tkinter.ttk import Frame, Label, Button, LabelFrame, Combobox, Style, Checkbutton, Entry, Panedwindow, Separator
+from tkinter import *
+import csv
-def button_rauschen_plus_press():
- print("Rauschen Press_Minus pressed")
+"""--------------------------FUNKTIONEN DIE DURCH GUI KLICKS AUSGEFÜHRT WERDEN---------------------------------------"""
+"""-------Funktionen links-------------"""
-# Ohr (links/beide/rechts)
-def button_linkes_ohr_press():
- print("button linkes ohr pressed")
+def links_scale_lautstärke_change(self):
+ linksLautstärke = float(linksScaleLautstärke.get())
+ print("Links Lautstärke =", linksLautstärke)
-def button_beide_ohren_press():
- print("button beide ohren pressed")
+def links_scale_frequenz_change(self):
+ linksFrequenz = float(linksScaleFrequenz.get())
+ print("Links Frequenz = ", linksFrequenz)
-def button_rechtes_ohr_press():
- print("button rechtes ohr pressed")
+def links_scale_rauschen_lautstärke_change(self):
+ linksRauschenLautstärke = float(linksScaleRauschenLautstärke.get())
+ print("Links Rauschen Lautstärke = ", linksRauschenLautstärke)
-# Lautstärke
-def scale_lautstärke_change(self):
- lautstärke = float(scaleLautstärke.get())
- print(lautstärke)
-
-def button_ohren_synchro():
- auswahl = comboOhrenSynchro.get() # holt die momentane Auswahl aus combobox
- print("Einstellungen von:" + auswahl + " auf alle anderen Ohren setzen")
+def links_scale_rauschen_mittelfrequenz_change(self):
+ linksRauschenMittelfrequenz = float(linksScaleRauschenMittelFrequenz.get())
+ print("Links Rauschen Mittelfrequenz = ", linksRauschenMittelfrequenz)
-# AUFBAU DES ROOT WINDOWS ----------------------------------------------------------------------------------------------
+def links_scale_rauschen_bandbreite_change(self):
+ linksRauschenBandbreite = float(linksScaleRauschenBandbreite.get())
+ print("Links Rauschen Bandbreite = ", linksRauschenBandbreite)
+
+
+"""----------Funktionen rechts----------"""
+
+
+def rechts_scale_lautstärke_change(self):
+ rechtsLautstärke = float(rechtsScaleLautstärke.get())
+ print("Rechts Lautstärke =", rechtsLautstärke)
+
+
+def rechts_scale_frequenz_change(self):
+ rechtsFrequenz = float(rechtsScaleFrequenz.get())
+ print("Rechts Frequenz= ", rechtsFrequenz)
+
+
+def rechts_scale_rauschen_lautstärke_change(self):
+ rechtsRauschenLautstärke = float(rechtsScaleRauschenLautstärke.get())
+ print("Rechts Rauschen Lautstärke = ", rechtsRauschenLautstärke)
+
+
+def rechts_scale_rauschen_mittelfrequenz_change(self):
+ rechtsRauschenMittelfrequenz = float(rechtsScaleRauschenMittelFrequenz.get())
+ print("Rechts Rauschen Mittelfrequenz = ", rechtsRauschenMittelfrequenz)
+
+
+def rechts_scale_rauschen_bandbreite_change(self):
+ rechtsRauschenBandbreite = float(rechtsScaleRauschenBandbreite.get())
+ print("Rechts Rauschen Bandbreite = ", rechtsRauschenBandbreite)
+
+
+"""--------------Funktionen unten------------------"""
+
+
+def unten_button_ohren_synchro():
+ auswahl = untenComboOhrenSynchro.get() # holt die momentane Auswahl aus combobox
+ print("Einstellungen von:" + auswahl + " das auf das jeweils andere Ohr setzen")
+
+ if auswahl == "Linkes Ohr": # linkes --> rechts
+ rechtsScaleLautstärke.set(linksScaleLautstärke.get())
+ rechtsScaleFrequenz.set(linksScaleFrequenz.get())
+ rechtsScaleRauschenLautstärke.set(linksScaleRauschenLautstärke.get())
+ rechtsScaleRauschenMittelFrequenz.set(linksScaleRauschenMittelFrequenz.get())
+ rechtsScaleRauschenBandbreite.set(linksScaleRauschenBandbreite.get())
+
+ if auswahl == "Rechtes Ohr": # rechts --> links
+ linksScaleLautstärke.set(rechtsScaleLautstärke.get())
+ linksScaleFrequenz.set(rechtsScaleFrequenz.get())
+ linksScaleRauschenLautstärke.set(rechtsScaleRauschenLautstärke.get())
+ linksScaleRauschenMittelFrequenz.set(rechtsScaleRauschenMittelFrequenz.get())
+ linksScaleRauschenBandbreite.set(rechtsScaleRauschenBandbreite.get())
+
+
+def unten_button_speichern_press():
+ print("button speichern pressed")
+ # Wenn man Speichern will bevor ein Name eingegeben wurde
+ if (not untenEntryVorname.get()) or (not untenEntryNachname.get()) or \
+ (untenEntryNachname == "Erst Namen..") or (untenEntryVorname == "..eintragen bitte"):
+ nachname.set("Erst Namen..")
+ vorname.set("..eintragen bitte")
+ else:
+ print("TEST")
+
+
+def unten_button_play_press():
+ print("button play pressed")
+
+
+def unten_button_stop_press():
+ print("button stop press")
+
+
+"""------------------------------------------ AUFBAU DES ROOT WINDOWS -----------------------------------------------"""
root = Tk() # build the main window
root.title("Tinnitus Analyse")
#root.iconbitmap('headphones.ico') #todo: fix icon
-root.minsize(width=800, height=600)
+#root.minsize(width=200, height=600)
root.resizable(True, True)
-#root.columnconfigure(0, weight=1)
-root.rowconfigure(0, weight=1) # extra platz nach unten wird automatisch von Frames eingenommen
+root.columnconfigure(0, weight=1) # falls freier Platz im Fenster ist, werden die Frames diesen benutzen
+root.rowconfigure(0, weight=1)
-# DIE DREI OBEREN FRAMES AUFBAUEN---------------------------------------------------------------------------------------
-linkerFrame = LabelFrame(root, text="linkes Ohr", width=100, height = 100, padding="3 3 30 30") # parent is root, padding is extra space at the edges
-linkerFrame.grid(column=0, row=0, sticky=(N + W + E + S)) # the frame sticks to every side of the window when resized
+"""------------------------------------------LINKER FRAME------------------------------------------------------------"""
+linkerFrame = LabelFrame(root, text="Linkes Ohr", font="bold") # parent is root, padding is extra space at the edges
+linkerFrame.grid(column=0, row=0, sticky=(N + W + E)) # the frame sticks to every side of the window when resized
-mittlererFrame = LabelFrame(root, text="beide Ohren", width=100, height=100, padding="3 3 30 30")
-mittlererFrame.grid(column=1, row=0, sticky=(N + W + E + S))
+linksLautstärke = DoubleVar()
+linksFrequenz = DoubleVar()
+linksRauschenLautstärke = DoubleVar()
+linksRauschenFrequenzband = DoubleVar()
-rechterFrame = LabelFrame(root, text="rechtes Ohr", width=100, height=100, padding="3 3 30 30")
-rechterFrame.grid(column=2, row=0, sticky=(N + W + E + S))
+# ------------------ LAUTSTÄRKE ------------------
+linksLabelLautstärke = Label(linkerFrame, text="Lautstärke [%]:")
+linksLabelLautstärke.grid(column=0, row=0, sticky=W)
+linksScaleLautstärke = Scale(linkerFrame, from_=0, to=100, orient=HORIZONTAL, length=700,
+ command=links_scale_lautstärke_change)
+linksScaleLautstärke.grid(column=1, row=0, columnspan=10, sticky=W)
+
+# -------- FREQUENZ ------------------------
+linksLabelFrequenz = Label(linkerFrame, text="Frequenz [kHz]")
+linksLabelFrequenz.grid(column=0, row=1, sticky=W) # sticky = w(est) makes the text left aligned
+linksScaleFrequenz = Scale(linkerFrame, from_=0, to=20, orient=HORIZONTAL, length=700, resolution=-1.0,
+ command=links_scale_frequenz_change)
+linksScaleFrequenz.grid(column=1, row=1, columnspan=10, sticky=(W+E))
+
+# ----------- ABTRENNSTRICH ----------------
+linksSeparator = Separator(linkerFrame, orient="horizontal")
+linksSeparator.grid(column=0, row=2, columnspan=10, sticky=(W + E))
+
+# ----------- RAUSCHEN --------------------
+linksLabelRauschenLautstärke = Label(linkerFrame, text="Rauschen Lautstärke %", anchor="w")
+linksLabelRauschenLautstärke.grid(column=0, row=3, sticky=W)
+linksScaleRauschenLautstärke = Scale(linkerFrame, from_=0, to=100, orient=HORIZONTAL, length=700,
+ command=links_scale_rauschen_lautstärke_change)
+linksScaleRauschenLautstärke.grid(column=1, row=3, sticky=(W+E))
+
+linksLabelRauschenMittelFrequenz = Label(linkerFrame, text="Rauschen Mittelfrequenz [kHz]", anchor="w")
+linksLabelRauschenMittelFrequenz .grid(column=0, row=4)
+linksScaleRauschenMittelFrequenz = Scale(linkerFrame, from_=0, to=20, orient=HORIZONTAL, length=700, resolution=-1.0,
+ command=links_scale_rauschen_mittelfrequenz_change)
+linksScaleRauschenMittelFrequenz.grid(column=1, row=4)
+
+linksLabelRauschenBandbreite= Label(linkerFrame, text="Rauschen Bandbreite [kHz]", anchor="w")
+linksLabelRauschenBandbreite.grid(column=0, row=5, sticky=W)
+linksScaleRauschenBandbreite = Scale(linkerFrame, from_=0, to=20, orient=HORIZONTAL, length=700, resolution=-1.0,
+ command=links_scale_rauschen_bandbreite_change)
+linksScaleRauschenBandbreite.grid(column=1, row=5, sticky=(W+E))
-# DIE DREI OBEREN FRAMES FÜLLEN-----------------------------------------------------------------------------------------
-labelFrames = [linkerFrame, mittlererFrame, rechterFrame]
-for aktLabelFrame in labelFrames:
- # -------- FREQUENZ ------------------------
- labelFrequenz = Label(aktLabelFrame, text="Frequenz [kHz]")
- labelFrequenz.grid(row=0, column=0, sticky=W) # sticky = w(est) makes the text left aligned
- frequenz = DoubleVar() # Frequenz Variable [kHz]
- entryFrequenz = Entry(aktLabelFrame, textvariable=frequenz) # create a field where u can enter text
- entryFrequenz.grid(column=1, row=0, sticky=W) # position the field
- # todo: Failproof the entry field to just numbers between a range!
- # todo: add function to entry change!
- # ----------- RAUSCHEN --------------------
- # todo: iwas überlegen ich brauch 3 verschiedene stringVars eigentlich für jedes Ohr!!!
- # todo: add function to entry change
- labelRauschen = Label(aktLabelFrame, text="Rauschen[+/- kHz]", anchor="w")
- labelRauschen.grid(column=0, row=1, sticky=W)
- buttonRauschenPlus = Button(aktLabelFrame, text="+", command=button_rauschen_plus_press)
- buttonRauschenPlus.grid(column=2, row=1)
- buttonRauschenMinus = Button(aktLabelFrame, text="-", command=button_rauschen_minus_press)
- buttonRauschenMinus.grid(column=3, row=1)
- rauschen = StringVar() # Rauschen Variable [+/- kHz]
- entryRauschen = Entry(aktLabelFrame, textvariable=rauschen) # create a field where u can enter text
- entryRauschen.grid(column=1, row=1, sticky=W) # position the field
- # ------------------ LAUTSTÄRKE ------------------
- labelLautstärke = Label(aktLabelFrame, text="Lautstärke [%]:")
- labelLautstärke.grid(column=0, row=3, sticky="w")
- scaleLautstärke = Scale(aktLabelFrame, from_=0, to=100, orient=HORIZONTAL, length=200, command=scale_lautstärke_change)
- scaleLautstärke.grid(column=1, row=3, columnspan=2)
- # ------------ KOMMENTAR ----------------
- labelKommentar = Label(aktLabelFrame, text="weitere Kommentare:")
- labelKommentar.grid(column=0, row=4)
- kommentar = StringVar() # Rauschen Variable [+/- kHz]
- entryKommentar = Entry(aktLabelFrame, textvariable=kommentar, width=33) # create a field where u can enter text
- entryKommentar.grid(column=1, row=4, rowspan=4, columnspan=2, sticky=W)
+"""----------------------------------------------RECHTER FRAME-------------------------------------------------------"""
+rechterFrame = LabelFrame(root, text="Rechtes Ohr", font="bold")
+rechterFrame.grid(column=2, row=0, sticky=(N + E + W))
+
+# Variablen Rechts
+rechtsFrequenz = DoubleVar()
+rechtsRauschenLautstärke = DoubleVar()
+rechtsRauschenFrequenzband = DoubleVar()
+rechtsLautstärke = DoubleVar()
+
+# ------------------ LAUTSTÄRKE ------------------
+rechtsLabelLautstärke = Label(rechterFrame, text="Lautstärke [%]:")
+rechtsLabelLautstärke.grid(column=0, row=0, sticky=W)
+rechtsScaleLautstärke = Scale(rechterFrame, from_=0, to=100, orient=HORIZONTAL, length=700,
+ command=rechts_scale_lautstärke_change)
+rechtsScaleLautstärke.grid(column=1, row=0, columnspan=10, sticky=W)
+
+# -------- FREQUENZ ------------------------
+rechtsLabelFrequenz = Label(rechterFrame, text="Frequenz [kHz]")
+rechtsLabelFrequenz.grid(column=0, row=1, sticky=W) # sticky = w(est) makes the text left aligned
+rechtsScaleFrequenz = Scale(rechterFrame, from_=0, to=20, orient=HORIZONTAL, length=700, resolution=-1.0,
+ command=rechts_scale_frequenz_change)
+rechtsScaleFrequenz.grid(column=1, row=1, columnspan=10, sticky=(W+E))
+
+# ----------- ABTRENNSTRICH ----------------
+rechtsSeparator = Separator(rechterFrame, orient="horizontal")
+rechtsSeparator.grid(column=0, row=2, columnspan=10, sticky=(W + E))
+
+# ----------- RAUSCHEN --------------------
+rechtsLabelRauschenLautstärke = Label(rechterFrame, text="Rauschen Lautstärke %", anchor="w")
+rechtsLabelRauschenLautstärke.grid(column=0, row=3, sticky=W)
+rechtsScaleRauschenLautstärke = Scale(rechterFrame, from_=0, to=100, orient=HORIZONTAL, length=700,
+ command=rechts_scale_rauschen_lautstärke_change)
+rechtsScaleRauschenLautstärke.grid(column=1, row=3, sticky=(W+E))
+
+rechtsLabelRauschenMittelFrequenz = Label(rechterFrame, text="Rauschen Mittelfrequenz [kHz]", anchor="w")
+rechtsLabelRauschenMittelFrequenz .grid(column=0, row=4)
+rechtsScaleRauschenMittelFrequenz = Scale(rechterFrame, from_=0, to=20, orient=HORIZONTAL, length=700, resolution=-1.0,
+ command=rechts_scale_rauschen_mittelfrequenz_change)
+rechtsScaleRauschenMittelFrequenz.grid(column=1, row=4)
+
+rechtsLabelRauschenBandbreite = Label(rechterFrame, text="Rauschen Bandbreite [kHz]", anchor="w")
+rechtsLabelRauschenBandbreite.grid(column=0, row=5, sticky=W)
+rechtsScaleRauschenBandbreite = Scale(rechterFrame, from_=0, to=20, orient=HORIZONTAL, length=700, resolution=-1.0,
+ command=rechts_scale_rauschen_bandbreite_change)
+rechtsScaleRauschenBandbreite.grid(column=1, row=5, sticky=(W+E))
-# DEN UNTEREN FRAME BAUEN-----------------------------------------------------------------------------------------------
-untererFrame = LabelFrame(root, text="Generelles", width=300, height=100, padding="3 3 30 30")
-untererFrame.grid(column=0, row=1, columnspan=3, sticky=(N + W + E + S))
+"""------------------------------------------------ UNTERER FRAME----------------------------------------------------"""
+untererFrame = LabelFrame(root, text="Generelles", border=10)
+untererFrame.grid(column=0, row=1, sticky=(N + W + S))
-# DEN UNTEREN FRAME FÜLLEN----------------------------------------------------------------------------------------------
-# ------------NAMENSEINGABE-------------
-labelNachname = Label(untererFrame, text="Nachname:")
-labelNachname.grid(column=0, row=0)
+vorname = StringVar() # Name des Patienten als String um den generierten Tinnitus später zuordnen zu können
nachname = StringVar()
-entryNachname = Entry(untererFrame, textvariable=nachname)
-entryNachname.grid(column=1, row=0)
-labelVorname = Label(untererFrame, text="Vorname:")
-labelVorname.grid(column=2, row=0)
-vorname = StringVar()
-entryVorname = Entry(untererFrame, textvariable=vorname)
-entryVorname.grid(column=3, row=0)
-# ------------------OHRENAUSWAHL-----------
-labelOhren = Label(untererFrame, text="Audioausgabe auf:")
-labelOhren.grid(column=0, row=1, sticky="w")
-buttonLinkesOhr = Button(untererFrame, text="linkem Ohr", command=button_linkes_ohr_press)
-buttonLinkesOhr.grid(column=1, row=1)
-buttonBeideOhren = Button(untererFrame, text="beiden Ohren", command=button_beide_ohren_press)
-buttonBeideOhren.grid(column=2, row=1)
-buttonRechtesOhr = Button(untererFrame, text="rechtem Ohr", command=button_rechtes_ohr_press)
-buttonRechtesOhr.grid(column=3, row=1)
+kommentare = StringVar() # Ein Feld in dass der Patient noch weitere Kommentare angeben kann
+# Den unteren Frame füllen----------------------------------------------------------------------------------------------
+
# --------- OHREN SYNCHRONISIEREN -----------------------
-labelOhrenSynchro = Label(untererFrame, text="Einstellungen von ")
-labelOhrenSynchro.grid(column=0, row=2)
-comboOhrenSynchro = Combobox(untererFrame, values=["Linkes Ohr", "Rechtes Ohr", "Beide Ohren"])
-comboOhrenSynchro.grid(column=1, row=2)
-labelOhrenSynchro2 = Label(untererFrame, text=" für alle anderen Ohren übernehmen")
-labelOhrenSynchro2.grid(column=2, row=2)
-buttonOhrenSynchro = Button(untererFrame, text="Bestätigen", command=button_ohren_synchro)
-buttonOhrenSynchro.grid(column=3, row=2)
+untenLabelOhrenSynchro = Label(untererFrame, text="Einstellungen von ")
+untenLabelOhrenSynchro.grid(column=0, row=0, sticky=(N + W))
+untenComboOhrenSynchro = Combobox(untererFrame, values=["Linkes Ohr", "Rechtes Ohr"])
+untenComboOhrenSynchro.grid(column=1, row=0, sticky=(N + W + E + S))
+untenLabelOhrenSynchro2 = Label(untererFrame, text=" für beide übernehmen")
+untenLabelOhrenSynchro2.grid(column=2, row=0, sticky=(N + W + E + S))
+untenButtonOhrenSynchro = Button(untererFrame, text="Bestätigen",
+ command=unten_button_ohren_synchro)
+untenButtonOhrenSynchro.grid(column=3, row=0, sticky=(N + W + E + S))
+
+#----------- PLAY BUTTON
+untenButtonPlay = Button(untererFrame, text="PLAY", font="bold", relief="raised", bg="green", fg="white",
+ command=unten_button_play_press)
+untenButtonPlay.grid(column=8, row=0, sticky=(N + W + E + S))
+
+#------------STOP BUTTON-------------
+untenButtonStop = Button(untererFrame, text="STOP", font="bold", relief="raised", bg="red", fg="white",
+ command=unten_button_stop_press)
+untenButtonStop.grid(column=9, row=0, sticky=(N + W + E + S))
+
+# ----------- ABTRENNSTRICHE ----------------
+untenSeparator = Separator(untererFrame, orient="horizontal")
+untenSeparator.grid(column=0, row=1, columnspan=10, sticky=(W + E))
+
+untenSeperator2 = Separator(untererFrame, orient="vertical")
+untenSeperator2.grid(column=5, rowspan=5, sticky=N+S)
+
+# ------------NAMENSEINGABE-------------
+untenLabelNachname = Label(untererFrame, text="Nachname:")
+untenLabelNachname.grid(column=0, row=2, sticky=W)
+untenEntryNachname = Entry(untererFrame, textvariable=nachname)
+untenEntryNachname.grid(column=1, row=2, sticky=W)
+untenLabelVorname = Label(untererFrame, text="Vorname:")
+untenLabelVorname.grid(column=0, row=3, sticky=W)
+untenEntryVorname = Entry(untererFrame, textvariable=vorname)
+untenEntryVorname.grid(column=1, row=3, sticky=W)
+
+# ------------ KOMMENTAR ----------------
+untenLabelKommentar = Label(untererFrame, text="weitere Kommentare:")
+untenLabelKommentar.grid(column=0, row=4, sticky=W)
+untenTextKommentar = Text(untererFrame, height=10, width=50) # create a field where u can enter text
+untenTextKommentar.grid(column=1, row=4, columnspan=3, rowspan=3)
# ----------- SPEICHERN --------------------
-buttonSpeichern = Button(untererFrame, text="SPEICHERN")
-buttonSpeichern.grid(column=6, row=3)
+untenButtonSpeichern = Button(untererFrame, text="Speichern", font="bold",
+ command=unten_button_speichern_press)
+untenButtonSpeichern.grid(column=4, row=6, sticky=S)
+# todo: , relief="raised" für play button
+
root.mainloop()
\ No newline at end of file