python拆堆和堆叠的操作_堆叠框架的Python / Tkinter退出按钮
我计划使用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退出按钮相关推荐
- python中返回上一步操作_通过实例解析Python文件操作实现步骤
当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. Python 提供了内置的文件对象,以及 ...
- python写入excel表格数据绘制图表_(原创)xlsxwriter,python excel 写入数据\图表等操作_图表操作(二)...
前面分享了使用xlsxwriter创建excel和写入数据GUC:(原创)xlsxwriter,python excel 写入数据\图表等操作_创建.写入(一)zhuanlan.zhihu.com ...
- python对windows进行操作_【转】python 操作windows下的目录
python 操作windows下的目录 python操作目录.文件相关的函数,在os模块中,当然或许也有别的模块提供了更方便的函数 以下列出的所有函数均亲自测试过! 1.os.getcwd() ...
- 用python实现excel 14个常用操作_用Python实现excel 14个常用操作
自从学了Python后就逼迫自己不用Excel,所有操作用Python实现.目的是巩固Python,与增强数据处理能力.这也是我写这篇文章的初衷.废话不说了,直接进入正题. 数据是网上找到的销售数据, ...
- python怎么返回上一步操作_一步一步教你如何用python操作mysql
工欲善其事,必先利其器.所以第一步,我们先下载第三方库.在这里,我用到的是pymysql库. 下载库:在命令行输入 1pip install pymysql 下载后可检验一下是否成功下载.直接在命令行 ...
- 老男孩python全栈9期全套视频_[全套视频] 老男孩Python全栈7期:Flask全套组件及原理剖析视频教程,全套视频教程学习资料通过百度云网盘下载...
目录├─1398 T* * I K, E% T│ ├─01 python fullstack s7day139 课前分享之找一个对标的人.mp4│ ├─02 python fullstack s7da ...
- 黑马传智python基础班课程_fb238 17年_传智黑马Python
fb238 17年_传智黑马Python 文件大小:7.39GB 文件类型:MP4 文件数量:50 --/资源热下载站/Vip教程/编程开发/Python/Fb238 17年_传智黑马Python/ ...
- python使用复合语句def创建函数对象_【收藏】Python实用技巧-成为Pythoner必经之路...
前言 本文主要记录 Python 中一些常用技巧,所描述的是告诉你怎么写才是更好? 如果你并不熟悉Python语法,希望你能在下面代码片段中看到Python的简单.优雅; 如果你象我这样,对 Pyt ...
- python实现pdf转word详解_手把手|20行Python代码教你批量将PDF文件转为Word格式(包教包会)...
在日常工作或学习中,经常会遇到这样的无奈: "小任,你把这个PDF中的文件码出来发我" 倒霉,2M的PDF12点也完不了啊! 很多时候在学习时发现许多文档都是PDF格式,PDF格式 ...
最新文章
- 目前HTML常用的字符集编码方式,HTML知识点
- [转]opensuse vim 的语法高亮
- 《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.2 实时直播抢占生意先机...
- PHP如何处理emoji表情存入utf8的数据库
- Linux打开bashrc权限不够,bash-4.2$ bash: /home/test/.bashrc: 权限不够
- C语言结构体的应用——万年历
- oracle 12.1.0.2中对象锁对系统的较大影响
- ElementUI:nav收起后点击后出现黑色边框
- 普通函数和Generator函数递归获取嵌套数组的最大值
- springboot进行微信公众号相关开发:(二)获取微信公众号access_token用以微信公众号各功能接口的调用
- 泛微 - eteams
- 听云-服务器监控,window+tomcat配置
- Codeforces - Reachable Strings
- 使用构造方法 重载 Scanner键盘录入的方式,做一个两个int类型的相加 和三个double类型的计算器
- 淘宝店铺装修(首页和宝贝详情页显示不一致)
- Unsplash能找到很多免费无版权图片
- leetcode 37 数独问题的解答
- PHP+AJAX教程(详细)
- a标签 :focus的使用(:focus)
- ApacheCN 公众号文章汇总 2019.6