如何将Tkinter滑块值存入变量?点击按钮时存储至变量v
如何在Tkinter中将滑块值存储到变量中(用于A-level扑克游戏初始金额设置)
问题描述
我正在做A-level项目的扑克游戏,需要用滑块设置初始金额。目前我仅能通过.get()方法打印滑块输出,无法将其存入变量(比如v)。现有代码如下:
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()
请问是否要在show_values函数中实现存储逻辑?
回答
没错!完全可以在show_values()函数里实现这个存储逻辑,你找对地方啦😉。不过要注意变量作用域的问题,不同场景下的写法略有不同:
1. 仅在函数内部使用变量
如果这个存储的初始金额只需要在show_values()函数里处理(比如直接传入游戏初始化逻辑),直接在函数内赋值即可:
def show_values(): v = w.get() print(f"当前设置的初始金额: {v}") # 这里可以直接把v传给你的扑克游戏初始化逻辑
2. 需要在函数外部访问变量
如果之后你要在程序的其他部分(比如游戏主逻辑里)使用这个v,就要把它声明为全局变量——这对于你的A-level项目来说是简单又实用的方案:
# 先在全局范围初始化变量,给个默认值 v = 0 def show_values(): global v # 声明要修改全局变量v v = w.get() print(f"初始金额已保存: {v}")
修改后的完整代码示例
from tkinter import * root = Tk() # 全局变量,用于存储扑克游戏的初始金额 initial_balance = 0 def set_initial_balance(): global initial_balance initial_balance = w.get() print(f"初始金额已设置为: £{initial_balance}") # 界面元素 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='设置初始金额', command=set_initial_balance).pack() w.pack() canvas.pack() mainloop() # 程序结束后也能访问到设置好的初始金额 print(f"最终确认的初始游戏金额: £{initial_balance}")
小建议
把按钮的文字从Show改成设置初始金额,这样用户(或者你自己测试时)能更直观地理解按钮的功能,让你的扑克游戏界面更友好~
内容的提问来源于stack exchange,提问作者BtechCoder
相关产品推荐
相关产品推荐

