Unterteilung in die 4 Fenster; "linkes Ohr, rechtes Ohr, beide Ohren, generelles". Hinzufügen einiger Widgets die mir sinnvoll erscheinen. Hinter den widgets stecken bisher fast keine Funktionen! Es sind nur leere Buttons bisher Außerdem hinzufügen zweier Bildedateien die als Icon dienen könntenmaster
<content url="file://$MODULE_DIR$"> | <content url="file://$MODULE_DIR$"> | ||||
<excludeFolder url="file://$MODULE_DIR$/venv" /> | <excludeFolder url="file://$MODULE_DIR$/venv" /> | ||||
</content> | </content> | ||||
<orderEntry type="inheritedJdk" /> | |||||
<orderEntry type="jdk" jdkName="Python 3.5" jdkType="Python SDK" /> | |||||
<orderEntry type="sourceFolder" forTests="false" /> | <orderEntry type="sourceFolder" forTests="false" /> | ||||
</component> | </component> | ||||
<component name="TestRunnerService"> | <component name="TestRunnerService"> |
<w>lautstärke</w> | <w>lautstärke</w> | ||||
<w>linkem</w> | <w>linkem</w> | ||||
<w>linkes</w> | <w>linkes</w> | ||||
<w>nachname</w> | |||||
<w>ohren</w> | <w>ohren</w> | ||||
<w>rauschen</w> | <w>rauschen</w> | ||||
<w>rechtem</w> | <w>rechtem</w> | ||||
<w>rechtes</w> | <w>rechtes</w> | ||||
<w>vorname</w> | |||||
</words> | </words> | ||||
</dictionary> | </dictionary> | ||||
</component> | </component> |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||
<project version="4"> | <project version="4"> | ||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5 (TinnitusAnalyse)" project-jdk-type="Python SDK" /> | |||||
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.5" project-jdk-type="Python SDK" /> | |||||
</project> | </project> |
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | ||||
<project version="4"> | <project version="4"> | ||||
<component name="ChangeListManager"> | <component name="ChangeListManager"> | ||||
<list default="true" id="5b3f2136-e422-4072-84be-e86e40fa2d55" name="Default Changelist" comment="" /> | |||||
<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> | |||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> | ||||
<option name="SHOW_DIALOG" value="false" /> | <option name="SHOW_DIALOG" value="false" /> | ||||
<option name="HIGHLIGHT_CONFLICTS" value="true" /> | <option name="HIGHLIGHT_CONFLICTS" value="true" /> | ||||
<option name="LAST_RESOLUTION" value="IGNORE" /> | <option name="LAST_RESOLUTION" value="IGNORE" /> | ||||
</component> | </component> | ||||
<component name="FileEditorManager"> | <component name="FileEditorManager"> | ||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> | |||||
<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="42840"> | |||||
<caret line="2522" column="16" selection-start-line="2522" selection-start-column="16" selection-end-line="2522" selection-end-column="16" /> | |||||
</state> | |||||
</provider> | |||||
</entry> | |||||
</file> | |||||
<leaf> | |||||
<file pinned="false" current-in-tab="true"> | <file pinned="false" current-in-tab="true"> | ||||
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py"> | <entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py"> | ||||
<provider selected="true" editor-type-id="text-editor"> | <provider selected="true" editor-type-id="text-editor"> | ||||
<state relative-caret-position="357"> | |||||
<caret line="21" selection-start-line="21" selection-end-line="21" /> | |||||
<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" /> | |||||
<folding> | <folding> | ||||
<element signature="e#0#54#0" expanded="true" /> | <element signature="e#0#54#0" expanded="true" /> | ||||
</folding> | </folding> | ||||
</entry> | </entry> | ||||
</file> | </file> | ||||
<file pinned="false" current-in-tab="false"> | <file pinned="false" current-in-tab="false"> | ||||
<entry file="file://$PROJECT_DIR$/.idea/TinnitusAnalyse.iml"> | |||||
<provider selected="true" editor-type-id="text-editor" /> | |||||
<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"> | |||||
<caret line="552" selection-start-line="552" selection-end-line="552" /> | |||||
</state> | |||||
</provider> | |||||
</entry> | </entry> | ||||
</file> | </file> | ||||
</leaf> | </leaf> | ||||
</option> | </option> | ||||
</component> | </component> | ||||
<component name="FindInProjectRecents"> | <component name="FindInProjectRecents"> | ||||
<findStrings> | |||||
<find>ttk</find> | |||||
<find>mainFrame</find> | |||||
<find>linkerFrame</find> | |||||
</findStrings> | |||||
<dirStrings> | <dirStrings> | ||||
<dir>C:\Users\Julian\PycharmProjects\TinnitusAnalyse</dir> | <dir>C:\Users\Julian\PycharmProjects\TinnitusAnalyse</dir> | ||||
</dirStrings> | </dirStrings> | ||||
</list> | </list> | ||||
</option> | </option> | ||||
</component> | </component> | ||||
<component name="ProjectFrameBounds"> | |||||
<component name="ProjectFrameBounds" extendedState="6"> | |||||
<option name="x" value="321" /> | <option name="x" value="321" /> | ||||
<option name="y" value="274" /> | <option name="y" value="274" /> | ||||
<option name="width" value="1602" /> | <option name="width" value="1602" /> | ||||
<navigator proportions="" version="1"> | <navigator proportions="" version="1"> | ||||
<foldersAlwaysOnTop value="true" /> | <foldersAlwaysOnTop value="true" /> | ||||
</navigator> | </navigator> | ||||
<panes> | |||||
<pane id="ProjectPane"> | |||||
<subPane> | |||||
<expand> | |||||
<path> | |||||
<item name="TinnitusAnalyse" type="b2602c69:ProjectViewProjectNode" /> | |||||
<item name="TinnitusAnalyse" type="462c0819:PsiDirectoryNode" /> | |||||
</path> | |||||
</expand> | |||||
<select /> | |||||
</subPane> | |||||
</pane> | |||||
<pane id="Scope" /> | |||||
</panes> | |||||
<panes /> | |||||
</component> | </component> | ||||
<component name="PropertiesComponent"> | <component name="PropertiesComponent"> | ||||
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> | <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> | ||||
<property name="last_opened_file_path" value="$PROJECT_DIR$" /> | <property name="last_opened_file_path" value="$PROJECT_DIR$" /> | ||||
<property name="restartRequiresConfirmation" value="false" /> | |||||
<property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> | <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> | ||||
</component> | </component> | ||||
<component name="RecentsManager"> | <component name="RecentsManager"> | ||||
<servers /> | <servers /> | ||||
</component> | </component> | ||||
<component name="ToolWindowManager"> | <component name="ToolWindowManager"> | ||||
<frame x="321" y="274" width="1602" height="1093" extended-state="0" /> | |||||
<frame x="-8" y="-8" width="2576" height="1416" extended-state="6" /> | |||||
<editor active="true" /> | |||||
<layout> | <layout> | ||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.29987213" /> | |||||
<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="Structure" order="1" side_tool="true" weight="0.25" /> | ||||
<window_info id="Favorites" order="2" side_tool="true" /> | <window_info id="Favorites" order="2" side_tool="true" /> | ||||
<window_info anchor="bottom" id="Message" order="0" /> | <window_info anchor="bottom" id="Message" order="0" /> | ||||
<window_info anchor="bottom" id="Find" order="1" /> | <window_info anchor="bottom" id="Find" order="1" /> | ||||
<window_info anchor="bottom" id="Run" order="2" weight="0.30625" /> | |||||
<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="Debug" order="3" weight="0.4" /> | ||||
<window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> | <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="Inspection" order="5" weight="0.4" /> | ||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | ||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> | <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> | ||||
</layout> | </layout> | ||||
<layout-to-restore> | |||||
<window_info content_ui="combo" id="Project" order="0" visible="true" 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="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" /> | |||||
<window_info anchor="bottom" id="Version Control" order="7" /> | |||||
<window_info anchor="bottom" id="Terminal" order="8" /> | |||||
<window_info anchor="bottom" id="Event Log" order="9" side_tool="true" /> | |||||
<window_info anchor="bottom" id="Python Console" order="10" /> | |||||
<window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> | |||||
<window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> | |||||
<window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> | |||||
</layout-to-restore> | |||||
</component> | </component> | ||||
<component name="editorHistoryManager"> | <component name="editorHistoryManager"> | ||||
<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://$USER_HOME$/AppData/Local/Programs/Python/Python35/Lib/tkinter/__init__.py"> | ||||
<provider selected="true" editor-type-id="text-editor"> | <provider selected="true" editor-type-id="text-editor"> | ||||
<state relative-caret-position="42840"> | |||||
<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" /> | <caret line="2522" column="16" selection-start-line="2522" selection-start-column="16" selection-end-line="2522" selection-end-column="16" /> | ||||
</state> | </state> | ||||
</provider> | </provider> | ||||
</entry> | </entry> | ||||
<entry file="file://$PROJECT_DIR$/.idea/TinnitusAnalyse.iml"> | |||||
<provider selected="true" editor-type-id="text-editor" /> | |||||
<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"> | |||||
<caret line="552" selection-start-line="552" selection-end-line="552" /> | |||||
</state> | |||||
</provider> | |||||
</entry> | </entry> | ||||
<entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py"> | <entry file="file://$PROJECT_DIR$/TinnitusAnalyse_GUI.py"> | ||||
<provider selected="true" editor-type-id="text-editor"> | <provider selected="true" editor-type-id="text-editor"> | ||||
<state relative-caret-position="357"> | |||||
<caret line="21" selection-start-line="21" selection-end-line="21" /> | |||||
<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" /> | |||||
<folding> | <folding> | ||||
<element signature="e#0#54#0" expanded="true" /> | <element signature="e#0#54#0" expanded="true" /> | ||||
</folding> | </folding> |
from tkinter import * # all the classic tkinter stuff | from tkinter import * # all the classic tkinter stuff | ||||
from tkinter import ttk # some newer additional widgets | |||||
""" | |||||
Background Funktionen | |||||
""" | |||||
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(): | def button_rauschen_minus_press(): | ||||
print("Rauschen_Press_Plus pressed") | print("Rauschen_Press_Plus pressed") | ||||
def button_linkes_ohr_press(): | def button_linkes_ohr_press(): | ||||
print("button linkes ohr pressed") | print("button linkes ohr pressed") | ||||
def button_beide_ohren_press(): | def button_beide_ohren_press(): | ||||
print("button beide ohren pressed") | print("button beide ohren pressed") | ||||
def button_rechtes_ohr_press(): | def button_rechtes_ohr_press(): | ||||
print("button rechtes ohr pressed") | print("button rechtes ohr pressed") | ||||
lautstärke = float(scaleLautstärke.get()) | lautstärke = float(scaleLautstärke.get()) | ||||
print(lautstärke) | print(lautstärke) | ||||
root = Tk() # build the main window | |||||
root.title("Tinnitus Analyse") | |||||
# MainFrame | |||||
mainFrame = ttk.Frame(root, padding="3 3 30 30") # parent is root, padding is extra space at the edges | |||||
mainFrame.grid(column=0, row=0, sticky=(N, W, E, S)) # the frame sticks to every side of the window when resized | |||||
# Frequenz | |||||
labelFrequenz = Label(mainFrame, text="Frequenz [kHz]") | |||||
labelFrequenz.grid(row=0, column=0, sticky="w") # sticky = w(est) makes the text left aligned | |||||
frequenz = StringVar() # Frequenz Variable [kHz] | |||||
entryFrequenz = ttk.Entry(mainFrame, width=7, textvariable=frequenz) # create a field where u can enter text | |||||
entryFrequenz.grid(column=1, row=0, sticky=(W, E)) # position the field | |||||
# todo: Failproof the entry field to just numbers between a range! | |||||
# todo: add function to entry change! | |||||
def button_ohren_synchro(): | |||||
auswahl = comboOhrenSynchro.get() # holt die momentane Auswahl aus combobox | |||||
print("Einstellungen von:" + auswahl + " auf alle anderen Ohren setzen") | |||||
# Rauschen | |||||
labelRauschen = Label(mainFrame, text="Rauschen [+/- kHz]", anchor="w") | |||||
labelRauschen.grid(column=0, row=1, sticky="w") | |||||
buttonRauschenPlus = Button(mainFrame, text="+", command=button_rauschen_plus_press) | |||||
buttonRauschenPlus.grid(column=1, row=1) | |||||
buttonRauschenMinus = Button(mainFrame, text="-", command=button_rauschen_minus_press) | |||||
buttonRauschenMinus.grid(column=2, row=1) | |||||
rauschen = StringVar() # Rauschen Variable [+/- kHz] | |||||
entryRauschen = ttk.Entry(mainFrame, width=7, textvariable=rauschen) # create a field where u can enter text | |||||
entryRauschen.grid(column=3, row=1) # position the field | |||||
# todo: add function to entry change | |||||
# Linkes / Rechts Ohr | |||||
labelOhren = Label(mainFrame, text="Audioausgabe auf:") | |||||
labelOhren.grid(column=0, row=2, sticky="w") | |||||
buttonLinkesOhr = Button(mainFrame, text="linkem Ohr", command=button_linkes_ohr_press) | |||||
buttonLinkesOhr.grid(column=1, row=2) | |||||
buttonBeideOhren = Button(mainFrame, text="beiden Ohren", command=button_beide_ohren_press) | |||||
buttonBeideOhren.grid(column=2, row=2) | |||||
buttonRechtesOhr = Button(mainFrame, text="rechtem Ohr", command=button_rechtes_ohr_press) | |||||
buttonRechtesOhr.grid(column=3, row=2) | |||||
# Lautstärke | |||||
labelLautstärke = Label(mainFrame, text="Lautstärke [%]:") | |||||
labelLautstärke.grid(column=0, row=3) | |||||
scaleLautstärke = Scale(mainFrame, from_=0, to=100, orient=HORIZONTAL, length=200, command=scale_lautstärke_change) | |||||
scaleLautstärke.grid(column=1, row=3, columnspan=2) | |||||
# --------------EXAMPLE GUI---------------------- | |||||
# mainframe = ttk.Frame(root, padding="3 3 3 3") # parent is root, padding is extra space at the edges | |||||
# mainframe.grid(column=0, row=0, sticky=(N, W, E, S)) # the frame sticks to every side of the window when resized | |||||
# root.columnconfigure(0, weight=1) # if the main window is resized, the frame should expand to take up the extra space | |||||
# root.rowconfigure(0, weight=1) # if the main window is resized, the frame should expand to take up the extra space | |||||
# | |||||
# frequency = StringVar() # a StringVar is meant to be used to edit Tkinter widget's texts | |||||
# meters = StringVar() | |||||
# | |||||
# """ | |||||
# Frequency Entry | |||||
# """ | |||||
# frequency_entry = ttk.Entry(mainframe, width=7, textvariable=frequency) # create a field where u can enter text | |||||
# frequency_entry.grid(column=2, row=1, sticky=(W, E)) # position the field | |||||
# ttk.Label(mainframe, text="Frequenz (kHz)").grid(column=1, row=1, sticky=W) # label the field | |||||
# | |||||
# """ | |||||
# Rauschen | |||||
# """ | |||||
# frequency_entry = ttk.Entry(mainframe, width=7, textvariable=frequency) # create a field where u can enter text | |||||
# frequency_entry.grid(column=2, row=1, sticky=(W, E)) # position the field | |||||
# ttk.Label(mainframe, text="frequency (kHz)").grid(column=1, row=1, sticky=W) # label the field | |||||
# | |||||
# ttk.Label(mainframe, textvariable=meters).grid(column=2, row=2, sticky=(W, E)) | |||||
# ttk.Button(mainframe, text="Calculate", command=calculate).grid(column=3, row=3, sticky=W) | |||||
# | |||||
# #ttk.Label(mainframe, text="frequency (kHz)").grid(column=3, row=1, sticky=W) | |||||
# ttk.Label(mainframe, text="is equivalent to").grid(column=1, row=2, sticky=E) | |||||
# ttk.Label(mainframe, text="meters").grid(column=3, row=2, sticky=W) | |||||
# | |||||
# for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5) | |||||
# | |||||
# frequency_entry.focus() | |||||
# root.bind('<Return>', calculate) | |||||
root.mainloop() | |||||
# 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.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) | |||||
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) | |||||
# --------- 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) | |||||
# ----------- SPEICHERN -------------------- | |||||
buttonSpeichern = Button(untererFrame, text="SPEICHERN") | |||||
buttonSpeichern.grid(column=6, row=3) | |||||
root.mainloop() |