Python 如何将滑块中的值指定给变量?我只能使用.get()打印输出,不能存储输出
我需要它将滑块的值存储在变量中,比如单击按钮时的Python 如何将滑块中的值指定给变量?我只能使用.get()打印输出,不能存储输出,python,tkinter,canvas,slider,Python,Tkinter,Canvas,Slider,我需要它将滑块的值存储在变量中,比如单击按钮时的v。对于上下文,我需要这个,这样我就可以有一个滑块,设置我的扑克游戏a级项目的起始金额 from tkinter import * root = Tk() def show_values(): print (w.get()) #would I put it in this function? canvas = Canvas(root, width = 700, height = 200, bg = "blue") w = Scale
v
。对于上下文,我需要这个,这样我就可以有一个滑块,设置我的扑克游戏a级项目的起始金额
from tkinter import *
root = Tk()
def show_values():
print (w.get()) #would I put it in this function?
canvas = Canvas(root, width = 700, height = 200, bg = "blue")
w = Scale(root,from_=0, to=200,length = 200, orient=HORIZONTAL,bg = "green")
Button(root, text='Show', command=show_values).pack()
w.pack()
canvas.pack()
mainloop()
我猜您在GUI定义的主体中设置了v。需要在相关按钮的命令功能中进行设置
from tkinter import *
root = Tk()
v = 0
def set_value():
global v
v = w.get() # v is set here
def do_print():
print( v ) # v can be read here.
canvas = Canvas(root, width = 700, height = 200, bg = "blue")
w = Scale(root,from_=0, to=200,length = 200, orient=HORIZONTAL,bg = "green")
Button(root, text='Set', command=set_value).pack()
Button(root, text='Print', command = do_print).pack()
w.pack()
canvas.pack()
mainloop()
“设置”按钮设置v值,可通过单击“打印”按钮读取。要在每次单击按钮时存储多个值还是一个值?只需单击该按钮的单个值即可。因此,如果他们滑到100,然后单击按钮,100将被存储。如果他们改变主意,他们可以滑动它,然后再次单击按钮,它将旧值替换为新值,那么我看不出将值保存到另一个变量有什么意义,因为该值可以直接从
w.get()使用
如果它是全局分配的。我需要它能够在程序中的任何位置使用,并且它还需要能够编辑。当我执行v=w.get()之类的操作时,无论滑块在什么位置,它都会显示v=0。有没有办法使v成为滑块的值,因为我将在本代码中大量使用它。为什么不能使用w.get()
而不是v
?比如在代码中的任何地方都使用w.get()
。global
通常不是一种糟糕的做法吗,尤其是对于初学者?特别是因为python是一种面向对象语言?@БББПаа-СПааа,我同意,但为了简单地说明这里发生了什么,我认为它更清晰。这个GUI中的所有其他元素也是全局的。我不是在OOP中编写代码,但v点只是一个变量,用户使用它来设置播放器开始时的芯片数量。我希望它是一个变量,因为它在整个游戏中更容易编辑、复制和操纵。