我计划使用Tkinter在Python中制作一个相当复杂的GUI,用于高级项目。 我碰到了这个链接,该链接提供了一种很好的结构化方法,可以通过堆叠框架来处理框架之间的切换。

我想制作一个简单的退出按钮,当按下该按钮时退出程序,因为我计划制作的GUI周围没有最小化,最大化或退出窗口框。 如果我添加这样的功能:

def quit_program(self):

self.destroy()

然后将该函数放在show_frame函数下面,然后在另一个类中对其进行调用,如下所示:

button3 = tk.Button(self, text="Quit",

command=lambda: controller.quit_program)

没用 这是为什么? 我将如何使用这种框架结构制作退出按钮?

button3 = tk.Button(self, text="Quit",

command=lambda: controller.quit_program)

不要让button3调用任何东西,因为它缺少lambda内部的调用()语法。替换为:

button3 = tk.Button(self, text="Quit",

command=lambda: controller.quit_program())

或更好的是:

button3 = tk.Button(self, text="Quit",

command=controller.quit_program)

此外,如果要退出功能,可以改用quit方法,因为它将破坏所有GUI,而不是像destroy那样将其附加到对象上:

button3 = tk.Button(self, text="Quit",

command=controller.quit)

我已经接受了您的代码,并且看到了一些错误。通过一些操作,我设法使其工作。结果如下:

import Tkinter as tk

root = tk.Tk()

button3 = tk.Button(text="Quit", command=lambda: quit_program())

def quit_program():

root.destroy()

button3.pack()

root.mainloop()

祝好运!

约旦。

-----编辑-----

抱歉,我无法完全阅读您的问题。希望这对您的工作有所帮助。

我将Brian的代码放入程序中,并按您所说的那样添加了destroy函数。然后,在函数__init__中的类StartPage中添加了一个按钮。可以在这里找到,名称为button3。

class StartPage(tk.Frame):

def __init__(self, parent, controller):

tk.Frame.__init__(self, parent)

self.controller = controller

label = tk.Label(self, text="This is the start page",

font=controller.title_font)

label.pack(side="top", fill="x", pady=10)

button1 = tk.Button(self, text="Go to Page One",

command=lambda:

controller.show_frame("PageOne"))

button2 = tk.Button(self, text="Go to Page Two",

command=lambda:

controller.show_frame("PageTwo"))

button3 = tk.Button(self, text="Quit",

command=lambda:

controller.quit_program())

button1.pack()

button2.pack()

button3.pack()

我的代码最终运行完美,当您按下按钮时,它退出了程序。我想您会发现,当您调用quit_program函数时,您会像这样调用它:controller.quitprogram,应该在其后加上括号,因为它是一个函数,例如:controller.quit_program() 。我没有看到您在代码中实际输入的内容,但是在您的问题中,您未在通话中包含括号。

希望这可以帮助!

约旦。

请记住,我已经使用python 2.7来做到这一点。

感谢您的答复,但是它不是我想要的。 我试图在链接中发布的代码中添加退出按钮。 我完全理解您的答案,但是我希望找到一个答案,如果将它添加到我在问题中链接的Brain Oakley发表的答案中,为什么它不起作用。 抱歉,如果我的问题不够清楚,请首先在堆栈溢出上发表!

抱歉 参见编辑版本。

您可以处理lambda:将command=lambda: controller.quit_program())替换为command=controller.quit_program)

python拆堆和堆叠的操作_堆叠框架的Python / Tkinter退出按钮相关推荐

  1. python中返回上一步操作_通过实例解析Python文件操作实现步骤

    当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. Python 提供了内置的文件对象,以及 ...

  2. python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...

    前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)​zhuanlan.zhihu.com ...

  3. python对windows进行操作_【转】python 操作windows下的目录

    python 操作windows下的目录 python操作目录.文件相关的函数,在os模块中,当然或许也有别的模块提供了更方便的函数 以下列出的所有函数均亲自测试过! 1.os.getcwd()    ...

  4. 用python实现excel 14个常用操作_用Python实现excel 14个常用操作

    自从学了Python后就逼迫自己不用Excel,所有操作用Python实现.目的是巩固Python,与增强数据处理能力.这也是我写这篇文章的初衷.废话不说了,直接进入正题. 数据是网上找到的销售数据, ...

  5. python怎么返回上一步操作_一步一步教你如何用python操作mysql

    工欲善其事,必先利其器.所以第一步,我们先下载第三方库.在这里,我用到的是pymysql库. 下载库:在命令行输入 1pip install pymysql 下载后可检验一下是否成功下载.直接在命令行 ...

  6. 老男孩python全栈9期全套视频_[全套视频] 老男孩Python全栈7期:Flask全套组件及原理剖析视频教程,全套视频教程学习资料通过百度云网盘下载...

    目录├─1398 T* * I K, E% T│ ├─01 python fullstack s7day139 课前分享之找一个对标的人.mp4│ ├─02 python fullstack s7da ...

  7. 黑马传智python基础班课程_fb238 17年_传智黑马Python

    fb238 17年_传智黑马Python 文件大小:7.39GB  文件类型:MP4 文件数量:50 --/资源热下载站/Vip教程/编程开发/Python/Fb238 17年_传智黑马Python/ ...

  8. python使用复合语句def创建函数对象_【收藏】Python实用技巧-成为Pythoner必经之路...

    前言 本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好?  如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单.优雅; 如果你象我这样,对 Pyt ...

  9. python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...

    在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...

最新文章

  1. 目前HTML常用的字符集编码方式,HTML知识点
  2. [转]opensuse vim 的语法高亮
  3. 《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.2 实时直播抢占生意先机...
  4. PHP如何处理emoji表情存入utf8的数据库
  5. Linux打开bashrc权限不够,bash-4.2$ bash: /home/test/.bashrc: 权限不够
  6. C语言结构体的应用——万年历
  7. oracle 12.1.0.2中对象锁对系统的较大影响
  8. ElementUI:nav收起后点击后出现黑色边框
  9. 普通函数和Generator函数递归获取嵌套数组的最大值
  10. springboot进行微信公众号相关开发:(二)获取微信公众号access_token用以微信公众号各功能接口的调用
  11. 泛微 - eteams
  12. 听云-服务器监控,window+tomcat配置
  13. Codeforces - Reachable Strings
  14. 使用构造方法 重载 Scanner键盘录入的方式,做一个两个int类型的相加 和三个double类型的计算器
  15. 淘宝店铺装修(首页和宝贝详情页显示不一致)
  16. Unsplash能找到很多免费无版权图片
  17. leetcode 37 数独问题的解答
  18. PHP+AJAX教程(详细)
  19. a标签 :focus的使用(:focus)
  20. ApacheCN 公众号文章汇总 2019.6

热门文章

  1. Quartz.Net—配置化
  2. 图解HTTPS建立过程
  3. 常用的数据统计Sql 总结(转)
  4. 【shell 脚本】删除 由windows传入linux含有的 ^M
  5. Map集合中value()方法与keySet()、entrySet()区别 ——转载
  6. GIT之旅【第一篇】
  7. C语言基础之--scanf函数
  8. Jenkins Mac安装更改用户名
  9. 省市县导入mysql代码,通过csv
  10. 在程序中支持多语言环境,支持asp.net和winform。