Python 3.x 在所有情况下,我得到的形状和hyd值为0
这是一个python tkinter代码。。我无法保留价值观。我总是得到0分Python 3.x 在所有情况下,我得到的形状和hyd值为0,python-3.x,tkinter,Python 3.x,Tkinter,这是一个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(m
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)
在应用程序关闭之前:
之后:
请将代码添加为文本,不要发布screenshot@SUJITKUMARSamal欢迎您:D。如果我的答案解决了您的问题,请选中我的答案旁边的复选标记,以显示您的问题已解决。