如何在jupyter笔记本中为变量指定tkinter刻度值?

t5zmwmid  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(389)

这是jupyter笔记本的第一个单元,它是一个简单的tkinter程序。
我可以将比例值指定给变量“a”并在jupyter笔记本的以下单元格中使用它吗?
现在,在jupyter笔记本的以下单元格中,我可以得到的“a”值始终为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)
zvokhttg

zvokhttg1#

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)

如果您使用的是类,则可以将此变量设为类示例的数据属性(例如, self.a ).

相关问题