如何通过按按钮关闭 Tkinter 窗口?

2023-12-30

编写一个带有标签的 GUI 应用程序"Good-bye"。当。。。的时候Button单击后,窗口关闭。

到目前为止,这是我的代码,但它不起作用。谁能帮我解决我的代码吗?

from Tkinter import *

window = Tk()

def close_window (root): 
    root.destroy()

frame = Frame(window)
frame.pack()
button = Button (frame, text = "Good-bye.", command = close_window)
button.pack()

window.mainloop()

只需对代码进行最少的编辑(不确定他们是否在您的课程中教授过课程),即可更改:

def close_window(root): 
    root.destroy()

to

def close_window(): 
    window.destroy()

它应该有效。


解释:

你的版本close_window被定义为期望一个参数,即root。随后,对您的版本的任何调用close_window需要有这个参数,否则Python会给你一个运行时错误.

当您创建一个Button,你告诉按钮运行close_window当它被点击时。然而,Button 小部件的源代码类似于:

# class constructor
def __init__(self, some_args, command, more_args):
    #...
    self.command = command
    #...

# this method is called when the user clicks the button
def clicked(self):
    #...
    self.command() # Button calls your function with no arguments.
    #...

正如我的代码所述,Button类将不带参数调用您的函数。然而你的函数需要一个参数。因此你有一个错误。因此,如果我们取出该参数,以便函数调用将在 Button 类中执行,我们将得到:

def close_window(): 
    root.destroy()

但这也是不对的,因为root从未被赋值。就像输入print(x)当你还没有定义时x, yet.

看着你的代码,我想你想打电话destroy on window,所以我改变了root to window.

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

如何通过按按钮关闭 Tkinter 窗口? 的相关文章

  • Python BigQuery 存储。并行读取多个流

    我有以下玩具代码 import pandas as pd from google cloud import bigquery storage v1beta1 import os import google auth os environ G
  • 如何打印没有类型的defaultdict变量?

    在下面的代码中 from collections import defaultdict confusion proba dict defaultdict float for i in xrange 10 confusion proba di
  • 更改自动插入 tkinter 小部件的文本颜色

    我有一个文本框小部件 其中插入了三条消息 一条是开始消息 一条是结束消息 一条是在 单位 被摧毁时发出警报的消息 我希望开始和结束消息是黑色的 但被毁坏的消息 参见我在代码中评论的位置 插入小部件时颜色为红色 我不太确定如何去做这件事 我看
  • SQL Alchemy 中的 NULL 安全不等式比较?

    目前 我知道如何表达 NULL 安全的唯一方法 SQL Alchemy 中的比较 其中与 NULL 条目的比较计算结果为 True 而不是 NULL 是 or field None field value 有没有办法在 SQL Alchem
  • 从 scikit-learn 导入 make_blobs [重复]

    这个问题在这里已经有答案了 我收到下一个警告 D Programming Python ML venv lib site packages sklearn utils deprecation py 77 DeprecationWarning
  • 从列表中的数据框列中搜索部分字符串匹配 - Pandas - Python

    我有一个清单 things A1 B2 C3 我有一个 pandas 数据框 其中有一列包含用分号分隔的值 某些行将包含与上面列表中的一项的匹配 它不会是完美的匹配 因为它在其中包含字符串的其他部分 该列 例如 该列中的一行可能有 哇 这里
  • 使用 Pycharm 在 Windows 下启动应用程序时出现 UnicodeDecodeError

    问题是当我尝试启动应用程序 app py 时 我收到以下错误 UnicodeDecodeError utf 8 编解码器无法解码位置 5 中的字节 0xb3 起始字节无效 整个文件app py coding utf 8 from flask
  • IRichBolt 在storm-1.0.0 和 pyleus-0.3.0 上运行拓扑时出错

    我正在运行风暴拓扑 pyleus verbose local xyz topology jar using storm 1 0 0 pyleus 0 3 0 centos 6 6并得到错误 线程 main java lang NoClass
  • 在pyyaml中表示具有相同基类的不同类的实例

    我有一些单元测试集 希望将每个测试运行的结果存储为 YAML 文件以供进一步分析 YAML 格式的转储数据在几个方面满足我的需求 但测试属于不同的套装 结果有不同的父类 这是我所拥有的示例 gt gt gt rz shorthand for
  • python 集合可以包含的值的数量是否有限制?

    我正在尝试使用 python 设置作为 mysql 表中 ids 的过滤器 python集存储了所有要过滤的id 现在大约有30000个 这个数字会随着时间的推移慢慢增长 我担心python集的最大容量 它可以包含的元素数量有限制吗 您最大
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • 循环中断打破tqdm

    下面的简单代码使用tqdm https github com tqdm tqdm在循环迭代时显示进度条 import tqdm for f in tqdm tqdm range 100000000 if f gt 100000000 4 b
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 在 Pandas DataFrame Python 中添加新列[重复]

    这个问题在这里已经有答案了 例如 我在 Pandas 中有数据框 Col1 Col2 A 1 B 2 C 3 现在 如果我想再添加一个名为 Col3 的列 并且该值基于 Col2 式中 如果Col2 gt 1 则Col3为0 否则为1 所以
  • 用于运行可执行文件的python多线程进程

    我正在尝试将一个在 Windows 上运行可执行文件并管理文本输出文件的 python 脚本升级到使用多线程进程的版本 以便我可以利用多个核心 我有四个独立版本的可执行文件 每个线程都知道要访问它们 这部分工作正常 我遇到问题的地方是当它们
  • 从 Python 中的类元信息对 __init__ 函数进行类型提示

    我想做的是复制什么SQLAlchemy确实 以其DeclarativeMeta班级 有了这段代码 from sqlalchemy import Column Integer String from sqlalchemy ext declar
  • 如何使用google colab在jupyter笔记本中显示GIF?

    我正在使用 google colab 想嵌入一个 gif 有谁知道如何做到这一点 我正在使用下面的代码 它并没有在笔记本中为 gif 制作动画 我希望笔记本是交互式的 这样人们就可以看到代码的动画效果 而无需运行它 我发现很多方法在 Goo
  • 在 Python 类中动态定义实例字段

    我是 Python 新手 主要从事 Java 编程 我目前正在思考Python中的类是如何实例化的 我明白那个 init 就像Java中的构造函数 然而 有时 python 类没有 init 方法 在这种情况下我假设有一个默认构造函数 就像
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • PyAudio ErrNo 输入溢出 -9981

    我遇到了与用户相同的错误 Python 使用 Pyaudio 以 16000Hz 录制音频时出错 https stackoverflow com questions 12994981 python error audio recording

随机推荐

  • 如何快速创建静态类?

    我想创建一个static快速上课 这可能吗 如果是这样怎么办 I tried static class MyClass 但出现错误Declaration cannot be marked static 没有静态类 但您可以通过仅添加静态方法
  • 如何在 Chrome 中设置 DOM 断点

    我正在尝试按照教程进行操作here https developers google com chrome developer tools docs elements 我被困在该部分DOM 断点 靠近底部 I went to the exam
  • WCF JSON POST请求,单个字符串参数未绑定并返回400

    在我的WCF 天蓝色云 服务中 我想支持JSON 我正在创建一些测试方法来查看是否一切正常 我可以让 GET 调用正常工作 但是当我使用简单参数执行 POST 时 我总是会得到 The remote server returned an e
  • 如何从 Access 中的 VBA 编辑器窗口运行查询?

    我想做这样的事情 DoCmd OpenQuery select from some table 我该怎么做 请记住 我不想创建新查询 保存并运行它 我只想在 VBA 代码中键入 select 语句并运行它 如果您只想获得最大值 则DMax
  • jq 通过转换现有的 json 创建一个新的 json

    prodid 876006 serid seridone 3265874 seridtwo 21458915 serials 028915 prodid 980 serid seridone 32743214 seridtwo 546987
  • Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错

    我是 android 开发和 android studio IDE 的新手 我已经从 bitbucket 签出了一个项目 当我尝试编译它时 出现以下错误 无法完成 Gradle 执行 原因 打开 zip 文件时出错 My gradle wr
  • 从页面 JS 中访问 React 对象?

    我有一个 ReactVr 对象 我用下面的代码渲染它 React 初始化后 我会定期接收服务器更新 我想将其作为 props 传递到 React 中 我该怎么做 React 对象中的 props 可以从我的 普通 JS 设置吗 ReactV
  • 退出无限循环? [复制]

    这个问题在这里已经有答案了 当我输入非整数时 我会进入无限循环 我如何解决它 这是我的代码 def inputInt integer while True try result int integer except ValueError p
  • 将 Java 8 与 LibGDX 结合使用

    我正在使用 LibGDX 用 Ja va 编写一个游戏 仅desktop作为目标平台 我刚刚创建了一个新的 LibGDX 项目 并向其中导入了一些现有代码 但现在出现了一些错误 具体来说 使用diamond operator 例如这行代码
  • 设置 pandas 图的图例位置

    我知道如何设置 matplotlib 图的图例位置plt legend loc lower left 但是 我正在用 pandas 方法进行绘图df plot 并需要将图例位置设置为 左下 有谁知道该怎么做 编辑 我实际上正在寻找一种通过
  • 我们如何在 Ionic App 中实现 SignalR?

    我制作了一个应用程序 可以向已注册该应用程序 Ionic Angular 的用户发送消息 它从数据库 SQL Server C API 获取所有消息并在消息框中打印出来 这很好 但是当我们向正在交谈的人发送消息时 该人在不刷新页面的情况下不
  • 在 Rails 中,如何在 i18n 语言环境文件中指定默认 flash 消息

    我知道 i18n 语言环境文件中有一些预设结构 以便 Rails 自动提取值 例如 如果您想为新记录设置默认提交按钮文本 config locales en yml en helpers submit create Create model
  • MySQL表可以存储的最大记录数是多少?

    MySQL MyISAM 表可以存储多少条记录 InnoDB可以有多少个 您无法按记录数进行计数 因为您的表可能包含只有几个 int 字段的非常短的记录 或者您的记录可能非常长且包含数百个字段 因此必须以表的文件大小来衡量 对于 MYSQL
  • 由不同操作成功触发的 Github Action

    我试图在成功运行不同的操作后触发 Github 操作来运行 这两个工作流程是 单元测试操作 首先运行 并且应该触发下面的 后续测试 操作 name unit tests on push branches jobs build runs on
  • 我正在用 microsoft Visual Studio 做我的 C++ 作业,我注意到一些不寻常的事情 [重复]

    这个问题在这里已经有答案了 当我尝试获取动态数组中插槽的数据时 出现异常 但是如果我使用不同的编译器 例如在线编译器 运行相同的代码 https www onlinegdb com online c compiler https www o
  • 如何绘制 z = f(x, y) 的平滑二维彩色图

    我正在尝试绘制二维现场数据使用 matplotlib 所以基本上我想要类似的东西 在我的实际情况中 我将数据存储在硬盘驱动器上的文件中 然而 为了简单起见 请考虑函数 z f x y 我想要一个平滑的二维图 其中 z 使用颜色可视化 我使用
  • 如何使用 JQuery 和跨站点脚本编写 ajax?

    我遇到一个问题 我必须从这里获取 json http templodasdeusas com br game srv game php srv home http templodasdeusas com br game srv game p
  • 使用属性 XmlSerialize 自定义集合

    我有一个简单的类 它继承自 Collection 并添加了几个属性 我需要将此类序列化为 XML 但 XMLSerializer 会忽略我的附加属性 我认为这是因为 XMLSerializer 对 ICollection 和 IEnumer
  • 在 C++ 中打印完整的回溯

    我想以与 gdb 中类似的格式从 Linux 中的 C 程序转储回溯 我尝试使用 backtrace 和 backtrace symbols 函数来实现此目的 这些返回的函数名称和偏移量 我可以使用 cxa demangle 函数来获取可读
  • 如何通过按按钮关闭 Tkinter 窗口?

    编写一个带有标签的 GUI 应用程序 Good bye 当 的时候Button单击后 窗口关闭 到目前为止 这是我的代码 但它不起作用 谁能帮我解决我的代码吗 from Tkinter import window Tk def close