当顶级窗口打开时隐藏根窗口,并在顶级窗口被销毁时使其重新出现

2024-06-27

如何在第二个窗口打开时隐藏主窗口,然后在第二个窗口关闭时使主窗口重新出现?

我了解withdraw()和deiconify()的用法,但不知道如何在这种情况下应用它们。

这样做的原因是最终创建一个程序,其中主窗口充当菜单,当从其中打开其他窗口时隐藏并在退出这些其他窗口时重新出现。

from tkinter import *

class Main():

    def __init__(self, master):
        self.master = master
        self.title = "Main Window"

        self.button1 = Button(self.master, text="Click Me", command = self.Open)
        self.button1.grid(row=0, column=0, sticky=W)
        self.button2 = Button(self.master, text="Close", command = self.Close)
        self.button2.grid(row=1, column=0, sticky=W)


    def Open(self):
        second_window = Toplevel(self.master)
        window2 = Second(second_window)

    def Close(self):
        self.master.destroy()


class Second():

    def __init__(self, master):
        self.master = master
        self.title = "Second Window"



root = Tk()
main_window = Main(root)
root.mainloop()

任何帮助将不胜感激。


您可以将绑定放在<Destroy>第二个窗口将调用一个函数,该函数将调用deiconify在主人身上。

如果您的代码中这会更容易Second是一个子类Toplevel。如果你这样做了,你可以将此代码隐藏在定义中Second。例如:

...
def Open(self):
    second_window = Second(self.master)
...

class Second(Toplevel):

    def __init__(self, master):
        Toplevel.__init__(self, master)
        self.master = master
        self.master.withdraw()
        self.bind("<Destroy>", self.on_destroy)

    def on_destroy(self, event):
        if event.widget == self:
            self.master.deiconify()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当顶级窗口打开时隐藏根窗口,并在顶级窗口被销毁时使其重新出现 的相关文章

  • tkinter 列配置和行配置

    我想了解 tkinter 中网格布局的一些内容 假设如果有额外空间 我希望第 1 行中的第 1 列展开 但第 2 行中的第 1 列不展开 我该怎么办 widget columnconfigure 让您可以控制所有列 但无法指定行 你无法准确
  • 使用 TkInter 绑定设置不可交互(点击)覆盖

    我已经浏览了其他几篇关于类似问题的帖子 所有这些似乎都指向this https stackoverflow com questions 29458775 tkinter see through window not affected by
  • 如何将条目中的部分文本加粗并更改其背景颜色?

    我正在创建一个基于 Tkinter 的 GUI 它有一个 Entry 小部件 我想将其文本的一部分加粗并更改其背景颜色 但我不知道我该怎么做 如果我使用文本小部件 我可以只使用标签 但看起来它们不能与条目小部件一起使用 此代码使用文本小部件
  • 在 Tkinter 中使用锚点

    我正在尝试对自动点唱机进行编程 但是我还处于早期阶段 并且在使用时遇到了问题anchor 这是我的代码 from tkinter import from tkinter import messagebox as box def main m
  • 在 while 循环中更改 tkinter 画布中的图像

    我的完整代码是here https gist github com ItsBerry de245ba70376cb07f4dbe2d25c223f5f 我正在尝试使用 tkinter 的画布创建一个小游戏 让人们练习学习高音谱号上的音符 最
  • 为什么开始按钮不执行计数器功能

    from tkinter import import tkinter as tk 创建计数器 def a def counter label label counter 0 def count global counter counter
  • 如何使用 Tkinter 创建等宽网格列?

    如何强制 Tkinter 应用程序窗口中的列宽度相等 tkdocs网站声明如下 每列的宽度 或每行的高度 取决于列或行中包含的小部件的宽度或高度 这意味着当绘制用户界面并将其划分为行和列时 您无需担心每列或行的宽度相等 或高度 大概 TkD
  • 删除 tkinter 文本默认绑定

    我正在制作一个简单的 tkinter 文本编辑器 但我想要所有默认绑定文本小部件如果可能的话删除 例如当我按Ctrl i它默认插入一个制表符 我制作了一个事件绑定来打印文本框中有多少行 我将事件绑定设置为Ctrl i以及 当我运行它时 它会
  • PhotoImage 实例没有属性“调整大小”

    我收到错误 PhotoImage 实例没有属性 调整大小 尽管多个在线资源声称这是使用 PIL 调整图像大小的方法 有任何想法吗 相关代码 Deathwing ImageTk PhotoImage Image open Deathwing
  • Python PIL 标签中的图像自动调整大小

    我正在尝试制作一个小部件来保存图像 该图像将自动调整大小以适合其容器 例如如果直接打包到窗口中 则扩展该窗口将扩展图像 我有一些半功能的代码 但我必须在其中一个例程中添加几个常量 以防止自动调整大小重新触发自身 导致其大小不断增长 我确信这
  • 如何将文件夹中的所有图像添加到按钮(在我的框架中)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想存储 jpg数组中文件夹中的图像 然后使用它们将其添加到我的 Python 框架中的按钮中 我正在 Python 3 4 3 中使用 t
  • 如何将交互式 matplotlib 图形插入 tkinter 画布

    我正在尝试将交互式 matplotlib 图形 具有滑块 重置按钮和单选按钮的图形 放入 tkinter Canvas 中 我已成功添加非交互式图表 但当它变为交互式时找不到问题 我尝试将所有内容更改为使用 matplotlib Figur
  • GUI(输入和输出矩阵)?

    我需要创建一个 GUI 将数据输入到矩阵或表格中并读取此表单数据 完美的解决方案是限制输入表单仅允许float 例如 A 1 02 0 25 0 30 0 515 0 41 1 13 0 15 1 555 0 25 0 14 1 21 2
  • 为什么 tkinter / window.update 在我的程序中随着时间的推移变得更慢?

    我发现当我调用 window update 时 当向窗口写入的内容较少时 它的运行速度会更快 但后来 当我向窗口写入更多元素时 window update 需要更长的时间 请参阅下面的我的代码 您可以看到它在更新窗口之前一次向屏幕 100
  • 即使添加了 tcl86t.dll 和 tk86t.dll,使用 cx_Freeze 时也会出现“ImportError:DLL 加载失败:找不到指定的模块”

    我正在尝试使用 cx Freeze 5 1 1 将 py 文件转换为 exe 但是ImportError DLL load failed每次我尝试运行该文件时都会弹出 基于建议的解决方案 here https stackoverflow c
  • 如何在 tkinter 画布中将多个对象移动到一起? [复制]

    这个问题在这里已经有答案了 我试图用鼠标拖放在画布上移动一些带有文本的矩形 我使用 find overlapping 选择要移动的矩形 这意味着最初作为类对象 Rect 的一部分创建的文本不会移动 有没有办法修改我的代码以移动类对象中的所有
  • Tkinter 按 Enter 键而不是空格键

    在 tkinter 中 您可以使用空格键按下突出显示的按钮 如何将其更改为返回键 我不想将特定功能绑定到按钮 我想在按钮突出显示时更改按下按钮的键 默认行为作为内部 tk 类的绑定来实现 对于按钮来说 该类是 Button 要添加新行为 您
  • Numpy 矩阵到 tkinter 画布

    如何将 Numpy 矩阵作为位图显示到 Tkinter 画布中 更准确地说 如何填写PhotoImage来自矩阵的内容 photo ImageTk PhotoImage self canvas create image 0 0 image
  • 如何隐藏 Tkinter python Gui

    有人知道如何隐藏 python GUI Tkinter 我已经创建了键盘记录器 对于 GUI 我使用了 python 模块 Tkinter 我想添加名为 HIDE 的按钮 因此当用户单击它时 它将隐藏 GUI 当用户按下 CTRL E 之类
  • 当使用 cx_Freeze 和 tkinter 时,我得到:“DLL 加载失败:找不到指定的模块。” (Python 3.5.3)

    当使用 cx Freeze 和 Tkinter 时 我收到以下消息 File C Users VergilTheHuragok AppData Local Programs Python Python35 32 lib tkinter in

随机推荐

  • Chrome 扩展程序未加载 EventListener

    我一直在创建一个 chrome 扩展 它将我的新标签页分成 2 个框架 这样我就可以尝试加载 2 个不同的 URL 现在我开始很简单 但我无法让它们按预期加载 这是代码 背景 html
  • Apache Karaf 与 Servicemix

    有人使用 Karaf 而不是 Servicemix 吗 如果是这样 您是如何做出这个决定的 我知道 Servicemix 在 Karaf 周围添加了一层功能 只是好奇 Karaf 是否单独使用以及为什么 我们在许多应用程序中使用 Karaf
  • WPF 我应该如何评估属性路径?

    我正在编写一个自定义控件 并且我有一个字符串形式的属性路径 认为comboBox SelectedValuePath 代码中评估任意对象的该字符串的最佳方法是什么 显然我可以自己解析它 但这是一个黑客 我希望路径支持一切comboBox S
  • 如何使用retrofit2动态设置超时?

    public class Router private static Retrofit retrofit null public Retrofit getRetrofit if retrofit null OkHttpClient clie
  • mongoose node.js,使用 $lt 和 $gt 进行查询不起作用

    我想要获取最后分数在 15 到 20 之间的所有学生 为此 我使用 mongoose 在 mongoDB 中执行以下查询 模型工作正常 所有其他查询都正常 Pupils find marks 1 value lt 20 marks 1 va
  • 如何从表中选择层次结构中的最低级别

    我有一个具有父 子关系的表 Table A Column Id int Column Parent Id int Column Description text 一组示例数据如下 999 NULL Corp 998 999 Div1 997
  • 为什么“let”不能用于命名内部递归过程?

    考虑计算阶乘函数的以下实现 1 define fac tail lambda n define fac tail helper lambda n ac if 0 n ac fac tail helper n 1 n ac fac tail
  • 如何使用 \b 删除换行符

    我希望以下代码的输出为 2 当我输入key的值为2时 我知道 b 只是将光标移回 1 个空格 但为什么在使用换行符输入 key 的值后无法将光标移回 1 个空格 使用换行符后是否可以使用转义字符 b include
  • 在 Android 市场中以编程方式检查我的应用程序版本

    目前 我正在启动时检查应用程序版本代码 并将其与我的服务器上的最新版本代码进行匹配 并根据此匹配 我发送用户从 Android 市场获取最新更新 它运行良好 但我的问题是我必须手动更改服务器上的最新版本代码 并且我不知道新版本何时发布APK
  • 将 html 源拆分为多个文件

    HTML 是否支持将源代码拆分为多个文件 我正在寻找 C 的等价物 include 或者也许是类似 C 的东西partial 可以采用源路径并在该位置注入文件内容的元素 如果之前有人问过这个问题 我们深表歉意 Google 和 SO 搜索没
  • 核心数据:解决一个奇怪的 EXC_BAD_ACCESS 错误

    我在核心数据方面面临着一个非常奇怪的问题 我们来描述一下 定义 假设我有两个模型 ModelA and ModelB 在数据模型中ModelA有参考ModelB作为一对多关联 因此ModelB与 具有一对一关联ModelA Update 当
  • Javascript 充满好奇心

    当我调用这个 Promise 时 输出与函数调用的顺序不匹配 这 then出现在 catch 即使承诺 then之后被呼叫 这是什么原因呢 const verifier a b gt new Promise resolve reject g
  • 构建一个无需 C++ Redistributable Package 即可运行的 .exe

    我正在使用 Visual Studio Community 2019 C 我的界面 和 Visual Studio 2017 Community C 在界面过程中调用的 exe 我需要将我的项目导出到其他电脑 如果他们没有安装 Visual
  • 检查发送到网页的请求数

    我正在编写一个 Java 多线程应用程序 它可以访问不同 Web 服务器的数百万个 有时甚至数十亿个 URL 这个想法是检查这些 URL 是否给出有效的 200OK 响应或 404 其他代码 我如何知道我的程序是否不会在他们的服务器上造成高
  • 在 ASP.NET Core 3.1 Web 应用程序中获取“无法识别的 SameSiteMode 值 -1”InvalidOperationException

    我正在运行一些测试 为即将推出的 Chrome 版本做准备 其中包括对 SameSite cookie 处理的更改 但我的 Web 应用程序遇到了麻烦 我可以通过以下方式重现它 使用 Visual Studio 2019 16 4 3 创建
  • 在 Web 表单项目中禁用自动友好 URL

    我在 Visual Studio 2013 中创建了一个 C Web 表单项目 当我运行我的sample aspx页面 页面自动使用 sample友好的 URL 路由 我想自己手动处理路由 而不是让 NET 自动完成 如何禁用友好 URL
  • 删除 SQL Server 上的所有扩展属性

    如何以可编写脚本的方式删除 SQL Server 上的所有扩展属性 如果您想要一个能够一次性删除所有扩展属性的脚本 请使用 Jamie Thomson 创建的脚本 该脚本将为所有扩展属性生成删除 您可以从这里下载article http s
  • 如何在 React 组件中处理 script.src URL 回调?

    我似乎无法弄清楚如何根据 google 的脚本 GET 请求触发函数 export class Map extends Component constructor props super props this state component
  • R 包“raster”在搜索“terra”最新版本时无法上传

    我正在 Windows 10 中使用 RStudio 2021 09 2 中的 R 4 1 2 工作 我正在处理空间数据 包括矢量和栅格 但三天前命令库 栅格 开始向我发出此警告 错误 loadNamespace i c lib loc l
  • 当顶级窗口打开时隐藏根窗口,并在顶级窗口被销毁时使其重新出现

    如何在第二个窗口打开时隐藏主窗口 然后在第二个窗口关闭时使主窗口重新出现 我了解withdraw 和deiconify 的用法 但不知道如何在这种情况下应用它们 这样做的原因是最终创建一个程序 其中主窗口充当菜单 当从其中打开其他窗口时隐藏