python-3.x - 在所有情况下,我都将 shape 和 hyd 的值设为 0
问题描述
这是一个 python tkinter 代码。我无法保留值。我总是得到 0
import random
import tkinter as tk
from tkinter import *
myWindow = tk.Tk()
myWindow.title("DESIGN OF LINED CANAL")
v1=IntVar()
Label(myWindow,text="What is the shape of your Canal? ").pack()
R1=Radiobutton(myWindow,text="Trapezoidal",variable=v1,value=0).pack()
R2=Radiobutton(myWindow,text="Rectangular",variable=v1,value=1).pack()
R3=Radiobutton(myWindow,text="Triangular",variable=v1,value=2).pack()
shape=v1.get()
v2=IntVar()
Radiobutton(myWindow,text="Yes",variable=v2,value=0).pack()
Radiobutton(myWindow,text="No",variable=v2,value=1).pack()
hyd=v2.get()
Button(myWindow,text="OK",bg="red",command=myWindow.destroy).pack()
myWindow.mainloop()
print("shape",shape)
print("hyd",hyd)
解决方案
首先,我想让您知道,粘贴代码的屏幕截图是一种不寻求帮助的好方法。很多用户会拒绝投票并继续前进。所以下次请直接在问题中使用代码。
您遇到的问题是,当您的代码执行时,get()
它只会在您的代码启动的那一刻运行,并且永远不会再次运行。你想要在这里做的是get()
在你销毁之前使用一个函数来运行你的语句。
我们可以通过简单地添加一个新函数并更改按钮命令来调用该函数来完成此操作。
我还更改了您的代码以更好地适应 PEP8 标准,这样您就可以看到它的样子。
import tkinter as tk
root = tk.Tk()
root.title("DESIGN OF LINED CANAL")
v1 = tk.IntVar()
v2 = tk.IntVar()
def ok_button_function():
global shape, hyd
shape=v1.get()
hyd=v2.get()
root.destroy()
tk.Label(root, text="What is the shape of your Canal? ").pack()
tk.Radiobutton(root, text="Trapezoidal", variable=v1, value=0).pack()
tk.Radiobutton(root, text="Rectangular", variable=v1, value=1).pack()
tk.Radiobutton(root, text="Triangular", variable=v1, value=2).pack()
tk.Radiobutton(root, text="Yes", variable=v2, value=0).pack()
tk.Radiobutton(root, text="No", variable=v2, value=1).pack()
tk.Button(root, text="OK", bg="red", command=ok_button_function).pack()
root.mainloop()
print("shape", shape)
print("hyd", hyd)
应用关闭前:
后:
推荐阅读
- python - 在 Python 中使用 shlex 进行词法分析时如何处理多字符评论者?
- javascript - 为什么webpack编译成功但是编译输出中没有我的源代码?
- python - Selenium 在 ubuntu 20.04 上的烧瓶路线内崩溃(chrome 和 firefox)
- visual-studio-code - 如何在 Visual Studio Code 中更改插件的 Intellisense 优先级
- ios - SwiftUI 列表项增加计数
- nlp - 确定 NER 任务的迁移学习策略
- php - 使用php mysql显示数据时缺少Datatable.js搜索栏
- sql - 获取当月最后一个日期时输入参数值
- react-native - Redux-persist 没有更新状态
- python-2.7 - 石头剪刀布模拟的异常结果