|
|
|
|
|
|
|
|
auswahl = untenComboOhrenSynchro.get() # holt die momentane Auswahl aus combobox |
|
|
auswahl = untenComboOhrenSynchro.get() # holt die momentane Auswahl aus combobox |
|
|
print("Einstellungen von:" + auswahl + " das auf das jeweils andere Ohr setzen") |
|
|
print("Einstellungen von:" + auswahl + " das auf das jeweils andere Ohr setzen") |
|
|
|
|
|
|
|
|
|
|
|
if auswahl == "": |
|
|
|
|
|
feedback("Bitte wähle ein Ohr", "white", "red") |
|
|
|
|
|
|
|
|
if auswahl == "Linkes Ohr": # linkes --> rechts |
|
|
if auswahl == "Linkes Ohr": # linkes --> rechts |
|
|
rechtsScaleLautstärke.set(linksScaleLautstärke.get()) |
|
|
rechtsScaleLautstärke.set(linksScaleLautstärke.get()) |
|
|
rechtsScaleFrequenz.set(linksScaleFrequenz.get()) |
|
|
rechtsScaleFrequenz.set(linksScaleFrequenz.get()) |
|
|
rechtsScaleRauschenLautstärke.set(linksScaleRauschenLautstärke.get()) |
|
|
rechtsScaleRauschenLautstärke.set(linksScaleRauschenLautstärke.get()) |
|
|
rechtsScaleRauschenMittelFrequenz.set(linksScaleRauschenMittelFrequenz.get()) |
|
|
rechtsScaleRauschenMittelFrequenz.set(linksScaleRauschenMittelFrequenz.get()) |
|
|
rechtsScaleRauschenBandbreite.set(linksScaleRauschenBandbreite.get()) |
|
|
rechtsScaleRauschenBandbreite.set(linksScaleRauschenBandbreite.get()) |
|
|
feedback("Einstellungen vom linken Ohr auf beide Ohren übertragen", "white", "blue") |
|
|
|
|
|
|
|
|
feedback("Einstellungen vom linken Ohr auf beide Ohren übertragen") |
|
|
|
|
|
|
|
|
if auswahl == "Rechtes Ohr": # rechts --> links |
|
|
if auswahl == "Rechtes Ohr": # rechts --> links |
|
|
linksScaleLautstärke.set(rechtsScaleLautstärke.get()) |
|
|
linksScaleLautstärke.set(rechtsScaleLautstärke.get()) |
|
|
|
|
|
|
|
|
linksScaleRauschenLautstärke.set(rechtsScaleRauschenLautstärke.get()) |
|
|
linksScaleRauschenLautstärke.set(rechtsScaleRauschenLautstärke.get()) |
|
|
linksScaleRauschenMittelFrequenz.set(rechtsScaleRauschenMittelFrequenz.get()) |
|
|
linksScaleRauschenMittelFrequenz.set(rechtsScaleRauschenMittelFrequenz.get()) |
|
|
linksScaleRauschenBandbreite.set(rechtsScaleRauschenBandbreite.get()) |
|
|
linksScaleRauschenBandbreite.set(rechtsScaleRauschenBandbreite.get()) |
|
|
feedback("Einstellungen vom rechten Ohr auf beide Ohren übertragen", "white", "blue") |
|
|
|
|
|
|
|
|
feedback("Einstellungen vom rechten Ohr auf beide Ohren übertragen") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def unten_button_speichern_press(): |
|
|
def unten_button_speichern_press(): |
|
|
print("button speichern pressed") |
|
|
print("button speichern pressed") |
|
|
# Wenn man Speichern will bevor ein Name eingegeben wurde kann man nicht speichern |
|
|
# Wenn man Speichern will bevor ein Name eingegeben wurde kann man nicht speichern |
|
|
if (not untenEntryVorname.get()) or (not untenEntryNachname.get()) or \ |
|
|
|
|
|
(untenEntryNachname == "Erst Namen..") or (untenEntryVorname == "..eintragen bitte"): |
|
|
|
|
|
nachname.set("Erst Namen..") |
|
|
|
|
|
vorname.set("..eintragen bitte") |
|
|
|
|
|
|
|
|
if (not untenEntryVorname.get()) or (not untenEntryNachname.get()): |
|
|
print("fehlgeschlagener Speicherversuch - Keine Eingaben gemacht") |
|
|
print("fehlgeschlagener Speicherversuch - Keine Eingaben gemacht") |
|
|
feedback("Fehlgeschlagener Speicherversuch! Mögliche Gründe: Erst Namen links eintragen.", "yellow", "red") |
|
|
|
|
|
feedback("Falls es danach immer noch nicht geht, bitte Microsoft Excel schließen.", "yellow", "red") |
|
|
|
|
|
|
|
|
feedback("Fehlgeschlagener Speicherversuch! Erst Namen links eintragen.", "white", "red") |
|
|
else: |
|
|
else: |
|
|
try: |
|
|
try: |
|
|
feedback("Speichere Sound als .wav Datei . Kann bis zu 30 Sekunden dauern. Bitte warten...", "white", "blue") |
|
|
|
|
|
# todo: warum auch immer, aber irgendwie wird feedback nach wav_speichern ausgeführt |
|
|
|
|
|
|
|
|
feedback("Speichere Sound als '.wav'-Datei. Das kann bis zu 30 Sekunden dauern. Bitte warten...") |
|
|
tinnitus.vorname = untenEntryVorname.get() |
|
|
tinnitus.vorname = untenEntryVorname.get() |
|
|
tinnitus.nachname = untenEntryNachname.get() |
|
|
tinnitus.nachname = untenEntryNachname.get() |
|
|
tinnitus.kommentar = untenTextKommentar.get("1.0", END) |
|
|
tinnitus.kommentar = untenTextKommentar.get("1.0", END) |
|
|
tinnitus.speichern() |
|
|
tinnitus.speichern() |
|
|
sound.wav_speichern() |
|
|
sound.wav_speichern() |
|
|
feedback("Daten erfolgreich gespeichert. Siehe: 'MeinTinnitus.wav' ", "white", "blue") |
|
|
|
|
|
|
|
|
feedback("Daten erfolgreich gespeichert. Siehe: 'MeinTinnitus.wav' ") |
|
|
except: |
|
|
except: |
|
|
feedback("Fehlgeschlagener Speicherversuch! Mögliche Gründe: Erst Namen links eintragen.", "yellow", "red") |
|
|
|
|
|
feedback("Falls es danach immer noch nicht geht, bitte Microsoft Excel schließen.", "yellow", "red") |
|
|
|
|
|
|
|
|
feedback("Fehlgeschlagener Speicherversuch! Bitte schließe Microsoft Excel.", "white", "red") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def unten_button_play_press(): |
|
|
def unten_button_play_press(): |
|
|
print("button play pressed") |
|
|
print("button play pressed") |
|
|
feedback("Starte Audioausgabe...", "white", "green") |
|
|
|
|
|
|
|
|
feedback("Starte Audioausgabe...", fontcolor="green") |
|
|
sound.mute = False # when this boolean is set to false no audio can ever play (it`s like a savety switch) |
|
|
sound.mute = False # when this boolean is set to false no audio can ever play (it`s like a savety switch) |
|
|
sound.play() |
|
|
sound.play() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def unten_button_stop_press(): |
|
|
def unten_button_stop_press(): |
|
|
print("button stop press") |
|
|
print("button stop press") |
|
|
feedback("Stoppe Audioausgabe", "white", "red") # place text in feedback field, fontcololor, backgroundcolor |
|
|
|
|
|
|
|
|
feedback("Stoppe Audioausgabe", fontcolor="red") # place text in feedback field, fontcololor, backgroundcolor |
|
|
sound.mute = True |
|
|
sound.mute = True |
|
|
sound.stop() |
|
|
sound.stop() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def feedback(text, fontcolor, backgroundcolor): |
|
|
|
|
|
|
|
|
def feedback(text, fontcolor = "black", backgroundcolor = "lightsteelblue"): |
|
|
""" This is a helper function. You can give it a string text and it will display it in the feedback frame (bottom |
|
|
""" This is a helper function. You can give it a string text and it will display it in the feedback frame (bottom |
|
|
right of the GUI) in the text widget. The parameter color is also a string and defines the font color. Same with |
|
|
right of the GUI) in the text widget. The parameter color is also a string and defines the font color. Same with |
|
|
background. Honestly this function is way too complicated, but Tkinter has no nicer/easier builtin way of doing the |
|
|
background. Honestly this function is way too complicated, but Tkinter has no nicer/easier builtin way of doing the |
|
|
|
|
|
|
|
|
untenFeedbackText.tag_config("Line"+str(feedback.lineCounter), foreground=fontcolor, background=backgroundcolor) |
|
|
untenFeedbackText.tag_config("Line"+str(feedback.lineCounter), foreground=fontcolor, background=backgroundcolor) |
|
|
|
|
|
|
|
|
untenFeedbackText.config(state=DISABLED) # set the text field back to readonly |
|
|
untenFeedbackText.config(state=DISABLED) # set the text field back to readonly |
|
|
|
|
|
root.update() #Damit der Text sofort ausgegeben wird, auch wenn das Programm erst noch was anderes macht |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" Initialisierungen """ |
|
|
""" Initialisierungen """ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ------------ PROGRAMM OUTPUT ------------ |
|
|
# ------------ PROGRAMM OUTPUT ------------ |
|
|
untenFeedbackText = Text(untererRechterFrame, height=13, width=85, bg="lightblue") # write feedback to patient here |
|
|
|
|
|
|
|
|
untenFeedbackText = Text(untererRechterFrame, height=13, width=85, bg="lightsteelblue") # write feedback to patient here |
|
|
#untenFeedbackText.config(state=DISABLED) # make the text widget readonly |
|
|
#untenFeedbackText.config(state=DISABLED) # make the text widget readonly |
|
|
untenFeedbackText.place(relx=.5, rely=.5, anchor="center") # the only time I used .place instead of grid, because it |
|
|
untenFeedbackText.place(relx=.5, rely=.5, anchor="center") # the only time I used .place instead of grid, because it |
|
|
# lets me place the widget in the middle of the frame |
|
|
# lets me place the widget in the middle of the frame |