t根据选项菜单的答案添加条目

2024-06-26 12:57:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用TKinter(我是GUI工具的新手),我想知道是否可以添加(或激活)一个基于选项菜单答案的条目。下面是代码的一部分

from Tkinter import *

win=Tk()

Label(win, text="Is This a Data Cube?",font='20').grid(row=14, column=0,sticky=W)
DataCubeValue = StringVar(win)
DataCubeValue.set("False")
DataCube = OptionMenu(win,DataCubeValue,"True","False")
DataCube.grid(row=15, column=0,sticky=W)

如果答案是True,我想显示以下内容:

Label(win, text="X and Y values (x,y)",font='20').grid(row=14, column=1,sticky=W)
XYValue = StringVar(win)
XYValue.set("10,7")
XY =  Entry(win,textvariable=XYValue)
XY.grid(row=15, column=1,sticky=W)

Tags: 答案textfalsecolumnwinlabelgridrow
1条回答
网友
1楼 · 发布于 2024-06-26 12:57:45

GUI编程的一个中心思想是注册要在用户操作的反应中执行的代码。这类代码通常被命名为回调(工具箱根据用户在接口上的操作将其回调)。你知道吗

可以使用以下行绑定到DataCubeValue更改。callback方法(将在前面定义)将在每次DataCubeValue的值更改时使用。你知道吗

DataCubeValue.trace("w", callback)

callback方法中,您可以选择使用LabelEntry实例化来放置代码块,但是您可以认为每次用户更改OptionMenu值时都会调用回调。您可以在用户使用OptionMenu后停用它,但我建议您在初始运行时实例化小部件,并在回调中显示或隐藏它们。你知道吗

def callback(*args):
    if DataCubeValue.get() == "True":
        label.grid(row=14, column=1,sticky=W)
        XY.grid(row=15, column=1,sticky=W)
    else:
        label.grid_forget()
        XY.grid_forget()

相关问题 更多 >