我在tkinker中有一个“顶层”按钮,我想关闭窗口,然后执行功能

血腥披萨17

到目前为止,我已经创建了一个带有一些功能按钮/菜单的框架。我的菜单按钮之一打开了一个新的“顶层”窗口。这个新的顶级窗口基本上是一个论坛填写页面。页面末尾是完成按钮。完成按钮关闭了tkiniter顶级窗口,同时离开了根窗口。我希望在按下按钮后执行代码行。

我的第一个想法是设置完成按钮命令以使窗口“撤回”。如果执行此操作,它将撤回窗口,但是如果我尝试运行if检查,则在按下按钮之前已经检查了该检查。对此,最简单的解决方案是创建一个函数,该函数撤回窗口并执行我想要的其他操作,但是,当我尝试将函数作为顶级完成按钮的命令传递时,它不会调用该函数。

任何有关如何使按钮关闭窗口然后执行附加代码(仅在按下按钮之后)的建议都将不胜感激。我已在下面附加了有问题的代码部分。预先感谢您的帮助。(旁注Computer类在另一个文件中处理)。(我正在使用Python 3.x)

def draw_new_computer_entry(self):
    t = Toplevel(self)
    t.resizable(0,0)
    t.wm_title("Solution Center: Add New Computer")
    t.geometry("300x300")
    nameLabel = Label(t, text="Computer Name:")
    nameLabel.place(x=0,y=10)

    a = computer()

    comp_nameEntry = Entry(t, width=30)
    comp_nameEntry.place(master=None, x=100, y=10)
    a.name = comp_nameEntry.get()

    comp_makerEntry= Entry(t,width=30)
    comp_makerEntry.place(x=100, y=50)
    a.maker = comp_makerEntry.get()

    makerLabel= Label(t, text="Maker:")
    makerLabel.place(x=55,y=50)

    graphics_cardEntry= Entry(t, width=30)
    graphics_cardEntry.place(x=100,y=90)
    a.gpu = graphics_cardEntry.get()

    graphics_cardLabel= Label(t, text="Graphics Card:")
    graphics_cardLabel.place(x=15, y=90)

    processorEntry= Entry(t, width=30)
    processorEntry.place(x=100, y=130)
    a.processor = processorEntry.get()

    processorLabel= Label(t, text="Processor:")
    processorLabel.place(x=38, y=130)

    hard_driveEntry= Entry(t, width=30)
    hard_driveEntry.place(x=100, y=170)
    a.hard_drive = hard_driveEntry.get()

    hard_driveLabel= Label(t, text="Hard Drive:")
    hard_driveLabel.place(x=30, y=170)

    ramEntry= Entry(t, width=30)
    ramEntry.place(x=100, y=210)

    ramLabel= Label(t,text="Ram:")
    ramLabel.place(x=65,y=210)
    doneButton = Button(t, text="done", command=t.withdraw)
    doneButton.place(x=265, y=275)
zaka100

您所要做的就是创建一个函数来关闭窗口,然后执行其他代码。

这是您的代码段:

def donePressed():
    t.withdraw() # Or t.destroy(), depending if you need to open this window again
    # Enter Code Here
    print('code after window close')
doneButton = Button(t, text="done", command=donePressed)
doneButton.place(x=265, y=275)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何确定一个进程是否有一个窗口,然后显示,隐藏或关闭它?

C#等待另一个打开的窗口关闭,然后执行其余功能

我想创建一个具有3个文本字段和2个按钮的JAVA窗口

在SwiftUI中,我在view1中有一个对象,在view2中有一个按钮,我想更改从视图2按下的按钮上的对象的值。我该怎么做?

我在主要活动中有一个浮动按钮。我想清除所有片段并返回到主要活动

使用 Tkinter iwant 打开第二个窗口,然后关闭我所在的前一个窗口

我想点击第三个窗口上的一个按钮,这是一个活动元素

python:我有一个列表,其中有逗号分隔的元素,我想获得唯一的元素

我想写一个IDEA插件,它执行与`Always Select Opened File`相同的功能

我想选择 .main-head(1-9) 并执行一个功能

LibGDX 窗口中有一个单元格困扰着我

我有一个执行流程问题,其中有nodejs子进程

我想尝试一个未用xpath关闭的标签

我想创建一个弹出窗口

我想使用 tkinter 创建一个登录窗口

我在TreeviewItem中有一个按钮。当我单击按钮时,不会选中TreeviewItem

当我单击 Java GUI 上的按钮时,如何打开一个新窗口并关闭当前窗口?

我在mongodb中有一个数据集,我想执行一些用python编码的函数,如何在上面执行这些函数(给定数据的条形图)

单击时我想显示按钮,再次单击时我想隐藏一个按钮

我想制作一个我自己的按钮,里面有 2 个其他按钮,我想让它们透明但透明度不起作用

我在phpmyadmin表中有一个记录列表,我想更改所有记录中一个字段的值

我想制作一个“剧透警报”按钮

我在测试中有 5 个选择。我有一个 csv 数据库。当我按下其中一个按钮时,我希望按钮上的文本更改为下一个标题

我有一个自定义的自动填充功能,想让KEYUP和KEYDOWN工作

我在asp.net c#中有一个网格视图,我想启用一个可以显示特定行详细信息的标签

当窗口中有两个按钮时聚焦第一个按钮

我的 javascript 框上需要一个关闭按钮

我想要一个带有关闭按钮的自定义对话

我的练习中有一个问题