Aus irgendeinem Grund möchte die Skalierungsfunktion in tkinter die Zahl nicht auf der Skala ausgeben. Alles, was ich erhalte, ist entweder 0.0 oder nichts. Es scheint, mit der GUI zu tun und Funktionen über die GUI aufzurufen. Geschrieben und in Python ausgeführt 3.4.Skalierungsfunktion gibt Nummer nicht an Variable aus?
from tkinter import *
from tkinter import ttk
from tkinter import messagebox
iterations=30
def settings():
global itervar, iterscale
sGui = Tk()
itervar = DoubleVar()
iterscale = Scale(sGui, orient="horizontal", from_=1, to=1000, variable=itervar)
iterscale.pack()
iterbutton = Button(sGui, text="Save Settings", command=saveSettings)
iterbutton.pack()
sGui.mainloop()
def saveSettings():
global iterations
iterations = itervar.get()
print(iterations)
def doNothing():
pass
def main():
global root, version
root= Tk()
menu = Menu(root)
root.config(menu=menu)
fileMenu = Menu(menu)
menu.add_cascade(label="File", menu=fileMenu)
fileMenu.add_command(label="Quit", command=quit)
benchmarkMenu = Menu(menu)
menu.add_cascade(label="Benchmark", menu=benchmarkMenu)
benchmarkMenu.add_command(label="Run [All]", command=doNothing)
benchmarkMenu.add_separator()
benchmarkMenu.add_command(label="Settings", command=settings)
root.mainloop()
#Main
main()
Ich habe die Funktionen settings
und saveSettings
versucht, auf eigene Faust, und sie arbeiten gut, aber wenn ich es über die GUI aufrufen scheint es nicht zu funktionieren.
Irgendwelche Ideen auf, das Problem, wäre meine einzige Lösung, um die settings
Funktion und saveSettings
Funktion in einer anderen Datei und diese Datei dann extern mit os.startfile("etc...")
warum nennst du 'sGui.mainloop()' in der 'Einstellungen' Funktion? –
, damit das Einstellungsfenster beim Ausführen geöffnet bleibt?!?! –
.... oh es ist eine andere 'Tk' Instanz ... ok Sie müssen es in ein' Toplevel' ändern, damit es als ein anderes Fenster zum Hauptprogramm existiert. –