Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将滑块中的值指定给变量?我只能使用.get()打印输出,不能存储输出_Python_Tkinter_Canvas_Slider - Fatal编程技术网

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点只是一个变量,用户使用它来设置播放器开始时的芯片数量。我希望它是一个变量,因为它在整个游戏中更容易编辑、复制和操纵。