Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【tkinter系列 第十课 TopLevel窗口部件 】

【tkinter系列 第十课 TopLevel窗口部件 】

作者头像
叶子陪你玩
发布于 2020-03-11 07:22:27
发布于 2020-03-11 07:22:27
3.6K00
代码可运行
举报
运行总次数:0
代码可运行

前言

python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。

本节课将要学习TopLevel窗口部件,TopLevel是最高级的意思,Toplevel 组件通常用在显示额外的窗口、对话框或者其他弹出窗口上。

看下面这个例子,当我们点击菜单栏的字体菜单时,会弹出一个新的窗口,这个就是TopLevel。

创建一个简单的TopLevel窗口

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from tkinter import *
top = Toplevel()top.title("TopLevel")
mainloop()

效果:

解释:

这里可能对于出现两个窗口会有疑问,其实是因为TopLevel虽然也是顶级窗口,但是它是不能独立存在的,默认会创建一个根窗口(自己实验猜测)。

下面的代码和上面是一样的效果,建议还是用下面的代码,显示创建一个根窗口更好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
root = Tk()top = Toplevel()top.title("TopLevel")
mainloop()

按钮弹出一个窗口

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from tkinter import *
root = Tk()root.geometry("400x200")root.title("父窗口")
def creatTopLevel():    top = Toplevel()    top.title("TopLevel")
Button(root,text="新建",command=creatTopLevel).pack()
mainloop()

效果:

解释:

这里要注意Button是绑定在root上的,通过触发按钮弹出一个TopLevel窗口,菜单栏就是类似的原理,具体如何实现下节课Menu会讲解。

实用案例

通常我们进入一个软件之前,需要先登录;没有登录就不能显示主界面(这里也就是root窗口),通过登录界面(这里是TopLevel窗口)登录成功后才显示。

前面说过,TopLevel是不能独立存在的,那root窗口要如何做到不显示和显示切换,下面就来通过一个简单案例理解它的原理,实际全面的功能需要等到后面的项目课具体学习。

登录界面

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from tkinter import *root = Tk()root.geometry("400x200")root.title("父窗口")root.withdraw() # 隐藏父窗口
top = Toplevel()top.geometry("400x200")top.title("登录注册")
def login():    pass
def logout():    pass
Button(top,text="登录",command=login).pack()Button(top, text="退出", command=logout).pack()
mainloop()

效果:

功能实现

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from tkinter import *import tkinter.messageboxroot = Tk()root.geometry("400x200")root.title("父窗口")root.withdraw() # 隐藏父窗口#给主界面添加一个标签内容Label(root,text="欢迎进入主界面").pack()
top = Toplevel()top.geometry("400x200")top.title("登录注册")
# 登录def login():    top.destroy() # 登入成功后销毁 登录注册窗口    root.deiconify() # 显示窗口    tkinter.messagebox.showinfo("提示","登录成功")# 退出def logout():    answer = tkinter.messagebox.askyesno("提示","确定直接退出吗?")    if answer: # 如果点击确定,会返回一个True的值,否则False        root.destroy()# 销毁主窗口
# 如果直接点击右上角关闭按钮,会直接关闭,通过这个方法,可以直接绑定logout函数top.protocol("WM_DELETE_WINDOW", logout)
Button(top, text="登录", command=login).pack()Button(top, text="退出", command=logout).pack()
mainloop()

效果:运行后,点击退出或者右上角关闭按钮。

点击登录按钮后,登录注册界面会消失,同时显示主界面和提示消息。

总结:

1.withdraw() 隐藏窗口,iconify()也是隐藏窗口,但是其实是最小化,任务栏还是可以点击打开的,withdraw()是会消失的。2.deiconify() 显示窗口 3.destroy() 销毁窗口 关闭父窗口,会将它下面的其它窗口都关闭 4.protocol("WMDELETEWINDOW", logout) 窗口的管理方法,第一个参数表示是窗口关闭,第二个参数表示触发操作时的回调函数.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 叶子陪你玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【tkinter系列 第十一课 Menu窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/11
1.7K0
【tkinter系列 第一课 创建主窗口及Label部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/12
1.3K0
python GUI界面设计的那些事(二)
python 可以通过 tkinter, pyqt5或者pyside2等工具库实现界面设计。
叶子陪你玩
2021/04/13
3.4K0
python GUI界面设计的那些事(二)
【tkinter系列 第六课 Radiobutton窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/12
1.3K0
【tkinter系列 第九课 Canvas窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/12
1.2K0
Python tkinter 制作一个经典的登录界面和点击事件
Tkinter(即 tk interface) 是 Python 标准 GUI 库,简称 “Tk”;从本质上来说,它是对 TCL/TK 工具包的一种 Python 接口封装。 Tkinter 是 Python 自带的标准库,因此无须另行安装,它支持跨平台运行,不仅可以在 Windows 平台上运行,还支持在 Linux 和 Mac 平台上运行。
松鼠爱吃饼干
2022/12/05
2.9K0
Python tkinter 制作一个经典的登录界面和点击事件
【tkinter系列 第八课 Listbox窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/11
2K0
【tkinter系列 第五课 Checkbutton窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/12
1.6K0
python tkinter 设计指南
pack() 是一种较为简单的布局方法,在不使用任何参数的情况下,它会将控件以添加时的先后顺序,自上而下,一行一行的进行排列,并且默认居中显示。pack() 方法的常用参数如下所示:
独元殇
2023/03/21
7.1K0
【tkinter系列 第四课 Entry和Text窗口部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/12
1.8K0
​Python | GUI编程之tkinter (一)
本文内容为使用Python3的tkinter模块,开发GUI。在阅读本文前,请确保你已经或可能满足以下条件:
LogicPanda
2019/07/30
6.1K0
Python GUI编程:Tkinter
Python里的图形化界面(GUI)模块主要有Tkinter(python自带)、PyQt、wxPython,我们这节主要讲解Tkinter组件:
小雨coding
2020/08/03
7.4K0
Python的GUI编程和tkinter,Wxpython
根窗体是图像化应用程序的根控制器,是tkinter的底层控件的实例。当导入tkinter模块后,调用 Tk()方法可初始化一个根窗体实例 root ,用 title() 方法可设置其标题文字,用geometry()方法可以设置窗体的大小(以像素为单位)。将其置于主循环中,除非用户关闭,否则程序始终处于运行状态。执行该程序,一个窗体就呈现出来了。在这个主循环的根窗体中,可持续呈现中的其他可视化控件实例,监测事件的发生并执行相应的处理程序
十二惊惶
2024/02/28
5540
零基础学Python【二十三、图形化界面设计 】(基础一篇全,欢迎认领)
当前流行的计算机桌面应用程序大多数为图形化用户界面(Graphic User Interface,GUI)。
红目香薰
2022/11/28
14.7K0
Python 笔记:GUI编程(Tkinter)
Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:
用户8442333
2021/05/17
5.4K0
python3 GUI
参考一:https://www.cnblogs.com/monsteryang/p/6558904.html 参考二:https://blog.csdn.net/yingshukun/article/details/53983812 参考三:https://blog.csdn.net/C_Creator/article/details/52383334
py3study
2020/01/06
1.2K0
python3 GUI
软件测试|超好用超简单的Python GUI库——tkinter(七)
上文我们介绍了tkinter的text模块的基本使用,以及撤销和恢复功能的实现,本篇文章我们将介绍 text模块对Mark、Tag 以及 Index的处理方法。
霍格沃兹测试开发Muller老师
2023/05/07
5510
Python-Tkinter图形化界面设计(详细教程 )
声明:本篇文章为转载自https://www.jianshu.com/p/91844c5bca78,在原作者的基础上添加目录导航,旨在帮助大家以更高效率进行学习和开发。
全栈程序员站长
2021/04/07
14.8K0
【tkinter系列 第七课 Scale部件 】
python中通常我们写程序,显示结果和操作都是在终端区,如果要想实现一个有显示界面的程序那该怎样实现呢?python中有好几个库都可以实现,这个系列我们一起来学习如何使用python自带的tkinter库来实现。
叶子陪你玩
2020/03/12
2.4K0
Python-GUI|Tkinter模块
01 Tkinter Tkinter模块是Python的标准Tk GUI工具包的接口,它并不是必须掌握的,但是掌握一个Python的标准图形库还是非常有意思的一件事。 它可以跨平台运行在Windows,Linux和Mac等系统上。 这篇文章不会介绍如何灵活地运用Tkinter,而是阐述Tkinter这个库包括什么,它能干什么! 02 第一个Tk-GUI from tkinter import * root=Tk() root.title('first tk gui') root.geometry('
double
2018/04/02
4.8K0
Python-GUI|Tkinter模块
相关推荐
【tkinter系列 第十一课 Menu窗口部件 】
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验