这是我用来查找不同四边形区域的一个小程序,当我从下拉菜单中选择一个选项时,它可以工作。但是,当我从让我们说方形切换到梯形时,我得到了这个:
我想清除窗口,只留下所选的选项。
以下是代码:
from tkinter import *
def square():
ment = IntVar()
def mhello():
mtext = ment.get()
mtext *= 2
mlabel2 = Label(mGui, text=mtext).pack()
mlabel = Label(mGui, text="Square").pack()
mbutton = Button(mGui, text= "Submit", command = mhello). pack()
nEntry = Entry(mGui, textvariable=ment).pack()
def rectangle():
oneMent = IntVar()
twoMent = IntVar()
def mhello():
oneMtext = oneMent.get()
twoMtext = twoMent.get()
mtext = 0
mtext = oneMtext * twoMtext
mlabel2 = Label(mGui, text=mtext).pack()
mlabel = Label(mGui, text="Rectangle/Parallelogram").pack()
mbutton = Button(mGui, text= "Submit", command = mhello). pack()
oneEntry = Entry(mGui, textvariable=oneMent).pack()
twoEntry = Entry(mGui, textvariable=twoMent).pack()
def trapezium():
oneMent = IntVar()
twoMent = IntVar()
threeMent = IntVar()
def mhello():
oneMtext = oneMent.get()
twoMtext = twoMent.get()
threeMtext = threeMent.get()
mtext = 0
mtext = oneMtext + twoMtext
mtext /= 2
mtext *= threeMtext
mlabel2 = Label(mGui, text=mtext).pack()
mlabel = Label(mGui, text="Trapezium").pack()
mbutton = Button(mGui, text= "Submit", command = mhello). pack()
oneEntry = Entry(mGui, textvariable=oneMent).pack()
twoEntry = Entry(mGui, textvariable=twoMent).pack()
threeEntry = Entry(mGui, textvariable=threeMent).pack()
def rhombus():
oneMent = IntVar()
twoMent = IntVar()
def mhello():
oneMtext = oneMent.get()
twoMtext = twoMent.get()
mtext = 0
mtext = oneMtext * twoMtext
mtext /= 2
mlabel2 = Label(mGui, text=mtext).pack()
mlabel = Label(mGui, text="Rhombus").pack()
mbutton = Button(mGui, text= "Submit", command = mhello). pack()
oneEntry = Entry(mGui, textvariable=oneMent).pack()
twoEntry = Entry(mGui, textvariable=twoMent).pack()
def restart():
mGui.destroy()
mGui = Tk()
mGui.geometry("450x450+500+300")
mGui.title("Square Area Finder")
mHomeLabel = Label(mGui, text="Use the drop down menu to select the quadrilateral you want to find the area of.").pack()
menu = Menu(mGui)
mGui.config(menu=menu)
file =Menu(menu)
file.add_command(label="Square", command=square)
file.add_command(label="Rectangle/Parallelogram", command=rectangle)
file.add_command(label="Trapezium", command=trapezium)
file.add_command(label="Rhombus", command=rhombus)
file.add_separator()
file.add_command(label="Quit", command=restart)
menu.add_cascade(label="Options", menu=file)
mGui.mainloop()
感谢任何可以提供帮助的人。
答案 0 :(得分:1)
当选择下拉菜单中的其他选项时,您需要删除之前的内容,然后创建新的小部件
在你制作形状的每个函数中,你需要首先销毁小部件,然后创建新的小部件
我修复了代码:
$scope.gridOptions.onRegisterApi = function (gridApi) {
$scope.gridApi = gridApi;
gridApi.edit.on.afterCellEdit($scope, function (rowEntity, colDef, newValue, oldValue) {
if (newValue !== oldValue) {
rowEntity['change'] = true;
}
});
});
此代码有效但可能更短更有效
将类似代码放入一个单独的函数而不是将其复制4次
的好习惯