目录

  • 引入
  • 窗口的属性
    • 大小
    • 位置
    • 标题
    • 图标
    • 透明度
    • 最前面
    • 禁用
    • 工具模式
    • 全屏
    • 最大化/最小化
    • 隐藏/显示
    • 脱离标题栏
    • 可调整大小
    • 窗口最大/最小可调整的大小
  • 总结

引入

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)深入聊聊窗口相关推荐

  1. python tkinter控件_如何实现python tkinter控件随窗口变化?

    不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...

  2. python控件随窗口变化而适配_如何实现python tkinter控件随窗口变化?

    不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...

  3. Python+tkinter实现椭圆形半透明窗口实时显示本机网络速度

    好消息:"Python小屋"编程比赛正式开始 推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社, ...

  4. python tkinter界面 控件位置随窗体自动调整适应_如何实现python tkinter控件随窗口变化?...

    不管是对于Java还是对于Python,我们最开始学习的时候,都会碰到关于开发上的窗口设置,如果不设置这个内容,你所呈现的项目效果,是非常不美观的,而往往为了符合美化,大家都会花费很多心思在基础的窗口 ...

  5. python tkinter 弹窗_tkinter主窗口和子窗口同时弹出该怎么办?

    参考代码注释 import os from tkinter import filedialog import tkinter as tk from tkinter import Button clas ...

  6. python的窗口处理模块_Python tkinter模块弹出窗口及传值回到主窗口操作详解

    本文实例讲述了Python tkinter模块弹出窗口及传值回到主窗口操作.分享给大家供大家参考,具体如下: 有些时候,我们需要使用弹出窗口,对程序的运行参数进行设置.有两种选择 一.标准窗口 如果只 ...

  7. python tkinter设置窗口大小_Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例...

    我就废话不多说了.大家直接看代码吧! #!/usr/bin/env python #coding=utf-8 ''' 窗口屏幕居中,设置窗口最大,最小尺寸... 版权所有 2014 yao_yu (h ...

  8. tkinter message_【莫烦Python】Tkinter 做简单的窗口视窗lt;学习笔记(2)gt;

    接(1) 还有五个苹果:[莫烦Python]Tkinter 做简单的窗口视窗<学习笔记>​zhuanlan.zhihu.com 登录窗口小例子(pickle存取) import

  9. python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件

    tkinter简介 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.作为 pytho ...

  10. python 菜单按钮打开新窗口_Python Tkinter Menubutton菜单按钮

    Menubutton小部件可以定义为始终向用户显示的下拉菜单.它用于为用户提供选择应用程序中存在的适当选择的选项. Menubutton用于在python应用程序中实现各种类型的菜单.菜单与Menub ...

最新文章

  1. android handler作用,Android中Handler的作用
  2. 只要努力搞,没有KPI搞不垮的团队?
  3. python socket thread_python 使用socket与thread进行实时通信
  4. WINCE6.0深入理解TOC
  5. lisp的vla函数画矩形_python之:tkinter画哆啦A梦
  6. Java技术回顾之JNDI--实例
  7. python 拟牛顿法 求非线性方程_C语言实现迭代法求非线性方程的根
  8. nginx How nginx processes a request
  9. PyCharm 专题
  10. Huber损失最小化学习法
  11. request重定向_Python转发与重定向
  12. GDB 01 -- 调试信息与调试原理
  13. docker 安装mysql_docker系列篇:docker以挂载配置文件和数据目录的方式安装mysql
  14. linux日期时间转换函数,Linux时间戳、日期转换函数
  15. linux 磁盘隔离,Linux 磁盘坏道故障修复
  16. freeswitch通过 sip网关联系外部世界
  17. python编程读取写入excel_Python实现读取并写入Excel文件过程解析
  18. ESP8266及AT指令学习笔记
  19. 文件末尾eof_什么是EOF(文件末尾)? PHP,C ++,C,Python,Java的示例
  20. t检验中的t值和p值是什么关系_t检验和p值的关系

热门文章

  1. 事件查看器-Windows程序闪退原因查看方法
  2. 如何用电脑画平面坐标图_如何画坐标图?
  3. sort排序不区分大小写C语言,使用sort进行不区分大小写的排序(list,key = str.lower)...
  4. 区块链在保险业的应用
  5. 【老生谈算法】matlab实现自适应Simpson积分算法源码——积分算法
  6. 大数据发展与情报资源整合的关系探索
  7. advGAN代码笔记
  8. directx.sys和svchost.com
  9. dw怎么在框架中加入网页_Dreamweaver如何用框架建立网站
  10. Debian9.5系统DNS服务器BIND软件配置说明