Python tkinter(2)深入聊聊窗口
目录
- 引入
- 窗口的属性
- 大小
- 位置
- 标题
- 图标
- 透明度
- 最前面
- 禁用
- 工具模式
- 全屏
- 最大化/最小化
- 隐藏/显示
- 脱离标题栏
- 可调整大小
- 窗口最大/最小可调整的大小
- 总结
引入
tkinter 的窗口其实是有很多属性的。我们可以设置它的各大属性,如窗口大小,可调整大小,透明度等等等等等等,可好玩了呢。
窗口的属性
大小
其实我在上一期文章:Python tkinter(1)介绍&创建窗口里面已经提到了。叫作:root.geometry("长x宽")
。其中,单位是“像素”。这里就复习一下吧。
import tkinter
root = tkinter.Tk()
root.geometry("200x200") #创建一个200x200的窗口
root.mainloop()
位置
窗口其实还可以设置它的位置。它和窗口大小用的是同一个语句,像这样:root.geometry("长x宽+X坐标+Y坐标")
。
我们来一段代码:
import tkinter
root = tkinter.Tk()
root.geometry("200x200+50+50")
#将窗口设置为200x200的大小,并将其放在屏幕上(50,50)的位置
root.mainloop()
而坐标也应当是两个整数,否则会抛出错误。不过,和窗口大小不一样,坐标可以设置为负数。
而负数坐标也是有讲究的。像root.geometry("200x200+-50+50")
,窗口将会被摆放在左边(-50,50),而root.geometry("200x200-50+50")
,窗口将会被摆放在右边,坐标为(你的屏幕宽度-50,50)。
标题
设置标题也不是一个技术活。千言万语概括成这么一句代码:root.title("一个标题")
。
import tkinter
root = tkinter.Tk()
root.title("Hi!") #将窗口的标题设置为"Hi"
root.mainloop()
效果怎么样啊?(就这???)
图标
其实我们还可以给窗口设置图标呢(标题栏左上角)。默认图标是一个蓝蓝的羽毛。图标有两种方式去设置:iconbitmap()
和 iconphoto()
。
这两者主要区别在于,iconbitmap只能加载ico格式的图片,而iconphoto可以加载png格式的图片。而用法也不一样:
import tkinter
root = tkinter.Tk()
#第一种方法:
root.iconbitmap(file="icon.ico") #这里icon.ico就是你的ico格式的图片
#第二种方法:
root.iconphoto(False,tkinter.PhotoImage(file='icon.png')) #这里icon.png就是你的的图片
发现了没?iconphoto其实有两个参数,第二个是图片,第一个是True或False,默认为False。如果设为True,那么图标也将应用于后面创建的所有顶级(Toplevel,后面我会讲到)窗口。
透明度
废话不多说,没啥好介绍的。直接上代码:root.attributes("-alpha",透明度)
。透明度应该设置为浮点数,而不是整数,在这方面我经常搞错。如果你想设置30%的透明度,那么就是root.attributes("-alpha",0.3)
。
import tkinter
root = tkinter.Tk()
root.attributes("-alpha",0.3) #设置窗口的透明度为30%
#root.attributes("-alpha",30) 这种写法不会报错,但是透明度会被设置为100%,即不透明
root.mainloop()
最前面
就是保持窗口最前。像这样:
来看看这是怎么实现的:
import tkinter
root = tkinter.Tk()
root.attributes("-topmost",True) #将窗口保持最前
root.mainloop()
你也可以随时取消窗口的最前属性,只要调用root.attributes("-topmost",False)
即可。
禁用
你有体验过被禁用的窗口吗?拖不动,也无法将其缩小、放大关闭等等。是不是很难受?
import tkinter
root = tkinter.Tk()
root.attributes("-disabled",True) #把窗口禁用掉
root.mainloop()
工具模式
在工具模式下的窗口,将不会有最小化、最大化按钮,只有一个关闭按钮。
import tkinter
root = tkinter.Tk()
root.attributes("-toolwindow",True) #工具窗口
root.mainloop()
好不好看啊?(有啥好看的)
全屏
设置全屏后,窗口将会撑满整个屏幕,任务栏也会被遮住。
import tkinter
root = tkinter.Tk()
root.attributes("-fullscreen",True) #全屏
root.mainloop()
最大化/最小化
对于一个窗口来说,一般有三种状态:最大化、正常、最小化。
import tkinter
root = tkinter.Tk()
root.state("zoomed") #最大化
root.state("normal") #正常
root.state("icon") #最小化
root.mainloop()
隐藏/显示
tkinter窗口可以消失且不出现在任务栏中,也可以恢复显示。
import tkinter
root = tkinter.Tk()
root.withdraw() #隐藏窗口#我们来搜搜词典:
#withdraw 英[wɪðˈdrɔː] 美[wɪðˈdrɔː]
#v. 撤退; (使)撤回,撤离; 停止提供; 不再给予; (使)退出; 提,取; 收回,撤回,撤销(说过的话); 脱离(社会);
#[例句]Tell the men to withdraw from their new position.
#告诉那些士兵从他们的新阵地上撤退。
#[其他] 第三人称单数:withdraws 现在分词:withdrawing 过去式:withdrew 过去分词:withdrawnroot.deiconify() #显示窗口
root.mainloop()
脱离标题栏
你可以设置窗口没有标题栏。但这样有一些缺点:没有标题栏的窗口需要手写窗口移动功能(如果你需要移动窗口的话),而且它不会出现在任务栏中。
import tkinter
root = tkinter.Tk()
root.overrideredirect(True) #脱离标题栏
root.overrideredirect(False) #找回标题栏
root.mainloop()
可调整大小
窗口可以调整长度,也可以调整高度。不过你可以禁止这方面的调整。
import tkinter
root = tkinter.Tk()
root.resizable(True,False) #只允许调整长度
root.resizable(False,True) #只允许调整高度
root.resizable(False,False) #长度和高度都不允许调整,同时最大化按钮会被禁用
root.mainloop()
窗口最大/最小可调整的大小
前面讲了禁止调整窗口大小,但如果你不想做得这么绝,那么还有下面这个法宝:
import tkinter
root = tkinter.Tk()
root.maxsize(500,500) #窗口最大不能超过500×500像素
root.minsize(100,100) #窗口最小不能小于100×100像素
root.mainloop()
总结
上面就是tkinter窗口大部分的功能啦。一起来复习一下:
import tkinter
root = tkinter.Tk()
root.geometry("300x300+50+50") #将窗口设置为300x300的大小,并将其放在屏幕上(50,50)的位置
root.title("Hello!") #将窗口的标题设置为"Hello"
root.iconbitmap(file="icon.ico") #这里icon.ico就是你的ico格式的图片
root.iconphoto(False,tkinter.PhotoImage(file='icon.png')) #这里icon.png就是你的的图片root.attributes("-alpha",0.3) #设置窗口的透明度为30%
root.attributes("-topmost",True) #将窗口保持最前
root.attributes("-disabled",True) #把窗口禁用掉
root.attributes("-toolwindow",True) #工具窗口
root.attributes("-fullscreen",True) #全屏root.state("zoomed") #最大化
root.state("normal") #正常
root.state("icon") #最小化root.withdraw() #隐藏窗口
root.deiconify() #显示窗口root.overrideredirect(True) #脱离标题栏
root.overrideredirect(False) #找回标题栏root.resizable(True,False) #只允许调整长度
root.resizable(False,True) #只允许调整高度
root.resizable(False,False) #长度和高度都不允许调整,同时最大化按钮会被禁用root.maxsize(500,500) #窗口最大不能超过500×500像素
root.minsize(100,100) #窗口最小不能小于100×100像素
root.mainloop()
而大部分的函数,如果你不给参数,那么这个函数将会返回当前状态。
我们下一期再见!
记得一键三连哦!
Python tkinter(2)深入聊聊窗口相关推荐
- python tkinter控件_如何实现python tkinter控件随窗口变化?
不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...
- python控件随窗口变化而适配_如何实现python tkinter控件随窗口变化?
不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...
- Python+tkinter实现椭圆形半透明窗口实时显示本机网络速度
好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...
- python tkinter界面 控件位置随窗体自动调整适应_如何实现python tkinter控件随窗口变化?...
不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...
- python tkinter 弹窗_tkinter主窗口和子窗口同时弹出该怎么办?
参考代码注释 import os from tkinter import filedialog import tkinter as tk from tkinter import Button clas ...
- python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解
本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作.分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只 ...
- python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...
我就废话不多说了.大家直接看代码吧! #!/usr/bin/env python #coding=utf-8 ''' 窗口屏幕居中,设置窗口最大,最小尺寸... 版权所有 2014 yao_yu (h ...
- tkinter message_【莫烦Python】Tkinter 做简单的窗口视窗lt;学习笔记(2)gt;
接(1) 还有五个苹果:[莫烦Python]Tkinter 做简单的窗口视窗<学习笔记>zhuanlan.zhihu.com 登录窗口小例子(pickle存取) import
- python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件
tkinter简介 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.作为 pytho ...
- python 菜单按钮打开新窗口_Python Tkinter Menubutton菜单按钮
Menubutton小部件可以定义为始终向用户显示的下拉菜单.它用于为用户提供选择应用程序中存在的适当选择的选项. Menubutton用于在python应用程序中实现各种类型的菜单.菜单与Menub ...
最新文章
- android handler作用,Android中Handler的作用
- 只要努力搞,没有KPI搞不垮的团队?
- python socket thread_python 使用socket与thread进行实时通信
- WINCE6.0深入理解TOC
- lisp的vla函数画矩形_python之:tkinter画哆啦A梦
- Java技术回顾之JNDI--实例
- python 拟牛顿法 求非线性方程_C语言实现迭代法求非线性方程的根
- nginx How nginx processes a request
- PyCharm 专题
- Huber损失最小化学习法
- request重定向_Python转发与重定向
- GDB 01 -- 调试信息与调试原理
- docker 安装mysql_docker系列篇:docker以挂载配置文件和数据目录的方式安装mysql
- linux日期时间转换函数,Linux时间戳、日期转换函数
- linux 磁盘隔离,Linux 磁盘坏道故障修复
- freeswitch通过 sip网关联系外部世界
- python编程读取写入excel_Python实现读取并写入Excel文件过程解析
- ESP8266及AT指令学习笔记
- 文件末尾eof_什么是EOF(文件末尾)? PHP,C ++,C,Python,Java的示例
- t检验中的t值和p值是什么关系_t检验和p值的关系
热门文章
- 事件查看器-Windows程序闪退原因查看方法
- 如何用电脑画平面坐标图_如何画坐标图?
- sort排序不区分大小写C语言,使用sort进行不区分大小写的排序(list,key = str.lower)...
- 区块链在保险业的应用
- 【老生谈算法】matlab实现自适应Simpson积分算法源码——积分算法
- 大数据发展与情报资源整合的关系探索
- advGAN代码笔记
- directx.sys和svchost.com
- dw怎么在框架中加入网页_Dreamweaver如何用框架建立网站
- Debian9.5系统DNS服务器BIND软件配置说明