Browse Source

GUI update

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
master
seyffejn 3 years ago
parent
commit
b73ae42745

+ 4
- 0
.gitignore View File

@@ -0,0 +1,4 @@

TinnitusAnalyse/.idea/dictionaries/Julian.xml
TinnitusAnalyse/.idea/workspace.xml
TinnitusAnalyse/eggs.csv

+ 12
- 0
TinnitusAnalyse/.idea/dictionaries/Julian.xml View File

@@ -2,18 +2,30 @@
<dictionary name="Julian">
<words>
<w>audioausgabe</w>
<w>bandbreite</w>
<w>beide</w>
<w>beiden</w>
<w>definieren</w>
<w>frequenz</w>
<w>kommentare</w>
<w>lautstärke</w>
<w>linkem</w>
<w>linken</w>
<w>linkes</w>
<w>mittel</w>
<w>mittelfrequenz</w>
<w>nachname</w>
<w>ohren</w>
<w>rauschen</w>
<w>rauschens</w>
<w>rechtem</w>
<w>rechten</w>
<w>rechter</w>
<w>rechtes</w>
<w>rechts</w>
<w>variablen</w>
<w>vorname</w>
<w>zwischen</w>
</words>
</dictionary>
</component>

+ 82
- 25
TinnitusAnalyse/.idea/workspace.xml View File

@@ -2,9 +2,7 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="5b3f2136-e422-4072-84be-e86e40fa2d55" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/TinnitusAnalyse.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/TinnitusAnalyse.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/dictionaries/Julian.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/dictionaries/Julian.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/TinnitusAnalyse_GUI.py" beforeDir="false" afterPath="$PROJECT_DIR$/TinnitusAnalyse_GUI.py" afterDir="false" />
</list>
@@ -15,14 +13,35 @@
<option name="LAST_RESOLUTION" value="IGNORE" />
</component>
<component name="FileEditorManager">
<leaf>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="89" column="74" selection-start-line="89" selection-start-column="74" selection-end-line="89" selection-end-column="74" />
<state relative-caret-position="396">
<caret line="93" lean-forward="true" selection-start-line="93" selection-end-line="93" />
<folding>
<element signature="e#0#54#0" expanded="true" />
<element signature="e#0#117#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="26435">
<caret line="1557" selection-start-line="1557" selection-end-line="1557" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/SoundGenerator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="170">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
<folding>
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
@@ -31,7 +50,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/ttk.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="281">
<state relative-caret-position="9367">
<caret line="552" selection-start-line="552" selection-end-line="552" />
</state>
</provider>
@@ -50,7 +69,14 @@
<findStrings>
<find>ttk</find>
<find>mainFrame</find>
<find>aktLabelFrame</find>
<find>linkerFrame</find>
<find>Var</find>
<find>Entry</find>
<find>Scale</find>
<find>linker</find>
<find>für alle</find>
<find>scale_lautstärke_links_change</find>
</findStrings>
<dirStrings>
<dir>C:\Users\Julian\PycharmProjects\TinnitusAnalyse</dir>
@@ -67,10 +93,10 @@
</option>
</component>
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="321" />
<option name="y" value="274" />
<option name="width" value="1602" />
<option name="height" value="1093" />
<option name="x" value="-8" />
<option name="y" value="-8" />
<option name="width" value="1696" />
<option name="height" value="1066" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView">
@@ -102,7 +128,28 @@
</list>
</option>
</component>
<component name="RunManager">
<component name="RunManager" selected="Python.TinnitusAnalyse_GUI">
<configuration name="SoundGenerator" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="TinnitusAnalyse" />
<option name="INTERPRETER_OPTIONS" value="" />
<option name="PARENT_ENVS" value="true" />
<envs>
<env name="PYTHONUNBUFFERED" value="1" />
</envs>
<option name="SDK_HOME" value="" />
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
<option name="IS_MODULE_SDK" value="true" />
<option name="ADD_CONTENT_ROOTS" value="true" />
<option name="ADD_SOURCE_ROOTS" value="true" />
<option name="SCRIPT_NAME" value="$PROJECT_DIR$/SoundGenerator.py" />
<option name="PARAMETERS" value="" />
<option name="SHOW_COMMAND_LINE" value="false" />
<option name="EMULATE_TERMINAL" value="false" />
<option name="MODULE_MODE" value="false" />
<option name="REDIRECT_INPUT" value="false" />
<option name="INPUT_FILE" value="" />
<method v="2" />
</configuration>
<configuration name="TinnitusAnalyse_GUI" type="PythonConfigurationType" factoryName="Python" temporary="true">
<module name="TinnitusAnalyse" />
<option name="INTERPRETER_OPTIONS" value="" />
@@ -127,6 +174,7 @@
<recent_temporary>
<list>
<item itemvalue="Python.TinnitusAnalyse_GUI" />
<item itemvalue="Python.SoundGenerator" />
</list>
</recent_temporary>
</component>
@@ -145,15 +193,14 @@
</component>
<component name="ToolWindowManager">
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" />
<editor active="true" />
<layout>
<window_info content_ui="combo" id="Project" order="0" weight="0.18479118" />
<window_info id="Structure" order="1" side_tool="true" weight="0.25" />
<window_info id="Favorites" order="2" side_tool="true" />
<window_info anchor="bottom" id="Message" order="0" />
<window_info anchor="bottom" id="Find" order="1" />
<window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.30553392" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.4" />
<window_info anchor="bottom" id="Run" order="2" weight="0.21200311" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.39977604" />
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" />
<window_info anchor="bottom" id="Inspection" order="5" weight="0.4" />
<window_info anchor="bottom" id="TODO" order="6" />
@@ -189,29 +236,39 @@
<entry file="file://$PROJECT_DIR$/.idea/TinnitusAnalyse.iml">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py">
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="809">
<caret line="2522" column="16" selection-start-line="2522" selection-start-column="16" selection-end-line="2522" selection-end-column="16" />
<state relative-caret-position="396">
<caret line="93" lean-forward="true" selection-start-line="93" selection-end-line="93" />
<folding>
<element signature="e#0#117#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/ttk.py">
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="281">
<caret line="552" selection-start-line="552" selection-end-line="552" />
<state relative-caret-position="26435">
<caret line="1557" selection-start-line="1557" selection-end-line="1557" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py">
<entry file="file://$PROJECT_DIR$/SoundGenerator.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="270">
<caret line="89" column="74" selection-start-line="89" selection-start-column="74" selection-end-line="89" selection-end-column="74" />
<state relative-caret-position="170">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
<folding>
<element signature="e#0#54#0" expanded="true" />
<element signature="e#0#11#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/ttk.py">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="9367">
<caret line="552" selection-start-line="552" selection-end-line="552" />
</state>
</provider>
</entry>
</component>
</project>

+ 244
- 108
TinnitusAnalyse/TinnitusAnalyse_GUI.py View File

@@ -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
from tkinter.ttk import Frame, Label, Button, LabelFrame, Combobox, Style, Checkbutton, Entry, Panedwindow, Separator
from tkinter import *
import csv

# FUNKTIONEN DIE DURCH GUI KLICKS AUSGEFÜHRT WERDEN---------------------------------------------------------------------

def button_rauschen_minus_press():
print("Rauschen_Press_Plus pressed")
"""--------------------------FUNKTIONEN DIE DURCH GUI KLICKS AUSGEFÜHRT WERDEN---------------------------------------"""
"""-------Funktionen links-------------"""


def button_rauschen_plus_press():
print("Rauschen Press_Minus pressed")
def links_scale_lautstärke_change(self):
linksLautstärke = float(linksScaleLautstärke.get())
print("Links Lautstärke =", linksLautstärke)


# Ohr (links/beide/rechts)
def button_linkes_ohr_press():
print("button linkes ohr pressed")
def links_scale_frequenz_change(self):
linksFrequenz = float(linksScaleFrequenz.get())
print("Links Frequenz = ", linksFrequenz)


def button_beide_ohren_press():
print("button beide ohren pressed")
def links_scale_rauschen_lautstärke_change(self):
linksRauschenLautstärke = float(linksScaleRauschenLautstärke.get())
print("Links Rauschen Lautstärke = ", linksRauschenLautstärke)


def button_rechtes_ohr_press():
print("button rechtes ohr pressed")
def links_scale_rauschen_mittelfrequenz_change(self):
linksRauschenMittelfrequenz = float(linksScaleRauschenMittelFrequenz.get())
print("Links Rauschen Mittelfrequenz = ", linksRauschenMittelfrequenz)


# Lautstärke
def scale_lautstärke_change(self):
lautstärke = float(scaleLautstärke.get())
print(lautstärke)
def links_scale_rauschen_bandbreite_change(self):
linksRauschenBandbreite = float(linksScaleRauschenBandbreite.get())
print("Links Rauschen Bandbreite = ", linksRauschenBandbreite)

def button_ohren_synchro():
auswahl = comboOhrenSynchro.get() # holt die momentane Auswahl aus combobox
print("Einstellungen von:" + auswahl + " auf alle anderen Ohren setzen")

"""----------Funktionen rechts----------"""

# AUFBAU DES ROOT WINDOWS ----------------------------------------------------------------------------------------------

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


# 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

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))

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))


# 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)


# 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))

# DEN UNTEREN FRAME FÜLLEN----------------------------------------------------------------------------------------------
# ------------NAMENSEINGABE-------------
labelNachname = Label(untererFrame, text="Nachname:")
labelNachname.grid(column=0, row=0)
root.columnconfigure(0, weight=1) # falls freier Platz im Fenster ist, werden die Frames diesen benutzen
root.rowconfigure(0, weight=1)


"""------------------------------------------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

linksLautstärke = DoubleVar()
linksFrequenz = DoubleVar()
linksRauschenLautstärke = DoubleVar()
linksRauschenFrequenzband = DoubleVar()

# ------------------ 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))


"""----------------------------------------------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))


"""------------------------------------------------ UNTERER FRAME----------------------------------------------------"""
untererFrame = LabelFrame(root, text="Generelles", border=10)
untererFrame.grid(column=0, row=1, sticky=(N + W + S))

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()

Loading…
Cancel
Save