| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python_tkinter多窗口(窗体)编程示例 -> 正文阅读 |
|
[Python知识库]python_tkinter多窗口(窗体)编程示例 |
python_tkinter多窗口(窗体)编程示例预备知识 图形用户界面(GUI、Graphical User Interface)是基于图形的界面,windows就是一个图形用户界面的操作系统,而DOS是基于字符命令交互的操作系统。图形用户界面由窗口构成,每个窗口都由标题、菜单、控制按钮、滚动条等元素组成。 图形用户界面(GUI)程序也成为桌面(Desktop)程序,是人机交互的图形化的程序。 Python支持多种图形界面的包(packages)较多,Python基于tkinter的GUI编程讲座 https://blog.csdn.net/cnds123/article/details/108290158 Tkinter是python 自带的图形界面的包(packages),也有人称为模块,不需要安装,直接导入 tkinter包(packages)即可使用。 下面介绍使用tkinter来开发GUI编程。 使用tkinter窗体简单只要3行代码,源码如下: from tkinter import Tk 说明:
特别提示,代码里各变量是区别大小写的,Tk()?,其中T是大写,k是小写字母。 运行上面的代码,只能得到一个默认的大小,默认标题,默认图标的窗体,如下图所示。 ? 在python的安装目录下【Python安装路径几种方法 https://blog.csdn.net/cnds123/article/details/101546889?】,有一个文件夹叫Lib,进入这个目录,你会发现,你想找到的模块很多都在这里,如模块,这个Lib文件夹里对应就有一个文件夹叫tkinter,这个tkinter文件夹: 进入这个tkinter文件夹,看看里面的文件,有__init__.py? ttk.py 等文件 在python中,把这个有__init__.py的文件夹叫“包”(package) 可以用import语句从包里导入模块的方法 相关知识可见“python之import语句的用法” https://blog.csdn.net/cnds123/article/details/118437585 前面的建立的窗体太简单了,没有什么使用价值,现实中对窗体大小、窗体的标题、窗体图标等有不同的要求。改进源码如下: from tkinter import Tk 准本已和图标 和代码保存在同一文件夹中。 【ico图标在线制作 http://ico.hillcloud.net/】 运行上面的代码效果如下 其中: geometry('300x150+600+300'),宽x高+,宽x高中间是小写的字母x,+800 第一个+后的数表示窗体左边界距屏幕最左边距离,第二个+后的数表示窗体上边界距屏幕最上边距离,以像素为单位。x和+前后不可有空格。 iconbitmap("./Smart.ico"),窗体图标,我这里由于是和Python文件放在同一个目录下,所以我使用.(当前目录),也可以使用绝对路径的。 有时,我们希望窗体禁止调节窗体的大小,以下代码可以让窗体无法调节窗体大小,而且窗体的标题栏上的最大化图标会变为灰。 root.resizable(False,False) 其中第一个参数False表示窗体宽度不可调节,第二个参数表示高度不可以调节。 导入模块tkinter的方式: 第1种方法: 点击复制代码 Python from tkinter import *?? # 导入模块写法1 root=Tk()?????????????? # 这里写法就比较简单 root.mainloop()???????? # 维持住窗体,等待事件的发生 第2种方法: 点击复制代码 Python import tkinter????????? # 导入模块写法2 root=tkinter.Tk()?????? # 这里就必须加前缀tkinter root.mainloop()???????? # 维持住窗体,等待事件的发生 第3种方法: 点击复制代码 Python import tkinter as tk?? # 导入模块写法3 root=tk.Tk()?????????? # 用别名tk代替tkinter作前缀 root.mainloop()???????? # 维持住窗体,等待事件的发生 【以下是一些跟窗体有关的常用代码,基本上就是一句代码搞定一项功能,备用: root.minsize(400, 260)????? # 设置窗口的最小尺寸,参数为(宽,高) root.maxsize(750, 650)????? # 设置窗口的最大尺寸,参数为(宽,高) root.state('zoomed')??????? # 最大化窗口 root.iconify()????????????? # 最小化窗口 root.attributes("-fullscreen", True)???? # 全屏,没有标题栏 root.state("iconic")???????????? # 隐藏窗体 root.withdraw()???????????????? # 隐藏窗体 root.deiconify()?????????????? # 让隐藏的窗体再显现 top1.transient(root)???????????? # 使窗体top1置顶于root窗口上 root.attributes("-alpha",0.8)???? #设置窗口透明度,范围为0到1 root.wm_attributes("-transparentcolor", "red") # 设置某种颜色透明 root.overrideredirect(True)?????? # 无标题栏窗体 】 tkinter多窗体界面切换 ★先给出一个最简单的例子
运行效果,参见下图: ★模仿密码登录 先运行form1()函数,展示的是第1个窗体——登录窗体, 密码正确,就关闭窗体1,运行函数form2(),展示窗体2。源码如下:
运行效果,参见下图: ★多模块下编程模仿密码登录 在一个模块(一个python模块就是一个python程序文件)中完成窗口的切换,一般都是因为程序比较简单,代码少,如果程序繁杂,把代码都做在一个模块里不太好管理维护代码,对完成复杂功能的程序,按功能划分为不同的模块。 对上例(模仿密码登录)的改进 在同一个目录下,有2个模块: login.py?? 登录的界面,由此启动运行 home.py? 主窗体 login.py文件源码如下
home.py文件源码如下:
运行效果,外观上和上图一样: ★多窗口跳转例子,实现一个主窗口切换到2个(或N个)窗体,并且可以由这些窗口返回到主窗口,源码如下:
运行效果,参见下图: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 20:39:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |