如何在Jupyter Notebook中为变量分配tkinter-Scale值



这是Jupyter Notebook的第一个单元格,它是一个简单的tkinter程序。

我能把标度值分配给变量"0"吗;a";并将其用于Jupyter Notebook的以下单元格?

现在,";a";在Jupyter Notebook的以下单元格中,我可以得到总是0。

from tkinter import *
a = 0
def sel():
selection = "Value = " + str(var.get())
a = var.get()
label.config(text = selection)
root = Tk()
var = DoubleVar()
scale = Scale( root, variable = var )
scale.pack(anchor=CENTER)
button = Button(root, text="Get Scale Value", command=sel)
button.pack(anchor=CENTER)
label = Label(root)
label.pack()
root.mainloop()
#print(a)

a = var.get():这里a是函数中的局部变量。


a = 0
def sel():
a = 2
print("a from sel:", a)
sel()
print("a:", a)

输出:


a from sel: 2
a: 0

或者,您可以将a设置为全局变量。


from tkinter import *

global scale_value
# set default
scale_value = 0

def save_scale_value(event):
global scale_value
# save the current value while the program is running
scale_value = event.widget.get()
print(f"Saved: {scale_value}")

def sel():
# reuse a variable in another function
global scale_value
print(f"global scale_value: {scale_value}")
selection = "Value = " + str(var.get())
label.config(text = selection)

root = Tk()
var = DoubleVar()
scale = Scale( root, variable = var )
scale.pack(anchor=CENTER)
button = Button(root, text="Get Scale Value", command=sel)
button.pack(anchor=CENTER)
label = Label(root)
label.pack()
scale.bind("<ButtonRelease>", save_scale_value)
root.mainloop()
# this will only print after the window is closed, when the root is destroyed
print(scale_value)

此外,您可能不需要额外的变量。您也可以在关闭窗口后使用var


from tkinter import *

def sel():
selection = "Value = " + str(var.get())
label.config(text = selection)

root = Tk()
var = DoubleVar()
scale = Scale(root, variable = var)
scale.pack(anchor=CENTER)
button = Button(root, text="Get Scale Value", command=sel)
button.pack(anchor=CENTER)
label = Label(root)
label.pack()
root.mainloop()
# this will only print after the window is closed, when the root is destroyed
print(var.get())
# Later, you can assign the scale value to a variable in a cell.
# name = var.get()

最新更新