You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 09:28:12