当前位置:   article > 正文

tkinter窗口美化功能介绍 第一章 内部美化功能_python tkinter窗口美化

python tkinter窗口美化

今天我教大家做tkinter窗口美化

第一章 · tkinter内部美化功能

  1. 窗口透明化
  2. 窗口居中
  3. 窗口最大最小化
  4. 删除窗口标题栏
  5. 窗口大小调整的设置

1.窗口透明化

可以通过调整第二个值来设置透明度

透明度数值: 0 ~ 1 

  1. from tkinter import *
  2. root = Tk()
  3. root.attributes("-alpha",0.5)
  4. # 开始主窗口循环
  5. root.mainloop()

 效果图:

 显然易见,窗口已经透明了一半了

最后再补充一下,数值越大,越不透明

2.窗口居中

其实这个不是通过一个内置函数直接搞定的,道理是先获取屏幕的高度和宽度,在通过计算,把窗口居中,关键还在geometry这个函数

我们先获取屏幕的高度和宽度:

  1. from tkinter import *
  2. print(Tk().winfo_screenwidth())
  3. print(Tk().winfo_screenheight())

会返回你的窗口高度和宽度

我们把窗口居中的代码:

  1. from tkinter import *
  2. root = Tk()
  3. width = 100
  4. height = 100
  5. root.geometry(
  6. f"{str(width)}x{str(height)}+"+
  7. f"{int((root.winfo_screenwidth() - width) / 2)}+"+
  8. f"{int((root.winfo_screenheight() - height) / 2)}"
  9. )
  10. # 开始主窗口循环
  11. root.mainloop()

运行你就会发现,窗口移动到了屏幕中间

3.窗口最大最小化

1.窗口最小化

这个其实很简单,用iconify就行了

代码:

  1. from tkinter import *
  2. root = Tk()
  3. # 窗口最小化
  4. root.iconify()
  5. # 开始主窗口循环
  6. root.mainloop()

运行就会发现,窗口没有出现在屏幕上,但在任务栏却有显示

除了iconify,也可以用state

那么,问题来了,怎么用代码取消最小化呢?

其实还是很简单,一行代码直接搞定

  1. from tkinter import *
  2. root = Tk()
  3. # 窗口最小化
  4. root.iconify()
  5. # 取消最小化,即为显示窗口
  6. root.state(NORMAL)
  7. # 开始主窗口循环
  8. root.mainloop()

结果是,窗口闪了一下,然后出现在屏幕上,如果没有iconify,那么窗口会出现在屏幕上,不会有任何变化

2.窗口最大化

这个要用到tkinter的state,

还有一点要说明,即使你已经用代码表示窗口得大小不能调整,他依旧会把窗口最大化

关于窗口大小调整的设置,请往下看

state函数的形参有:

iconic (最小化窗口)

normal (显示窗口,取消最小化)

withdrawn (撤回此窗口,即关闭)

zoomed (最大化窗口)

相信大家不用我货都已经明白了对吧?

既然如此,我就不上代码了

额额,好吧,代码还是要给的

  1. from tkinter import *
  2. root = Tk()
  3. # 最大化窗口
  4. root.state("zoomed")
  5. # 开始主窗口循环
  6. root.mainloop()

运行就会发现,窗口占满了整个屏幕!

额,好吧,还有个任务栏呢

如果要缩小成原来的大小,用取消最小化的方法也能行

4.删除窗口的标题栏

一行代码直接搞定!

但,没有了标题栏,也就无法移动窗口了

但我们可以绘制一个标题栏,实现绘制标题栏,

至于详细代码,请看第二章

删除标题栏代码:

  1. from tkinter import *
  2. root = Tk()
  3. # 删除标题栏
  4. root.overrideredirect(True)
  5. # True 删除标题栏,False 不删除标题栏
  6. # 开始主窗口循环
  7. root.mainloop()

运行之后,标题栏不见了,窗口只能在原始位置不能移动

5.窗口大小调整的设置

首先,调整初始大小的函数不用我说了吧?

我们来谈一谈窗口的后期调整

1.禁止手动调整大小

这个很简单, 就是用resizable

resizable的第一个参数调整宽度,第二个调整高度

如果为True,则窗口的某一边不能调整大小、拉伸窗口

如果形参为True、True,则都可以拉伸

root.resizable(True,True)
root.resizable(True,True)

如果形参为False、True,则宽度能拉伸

root.resizable(False,True)
root.resizable(False,True)

如果形参为True、False,则高度能拉伸

root.resizable(True,False)
root.resizable(True,False)

如果形参为False、False,则都不能拉伸

root.resizable(False,False)
root.resizable(False,False)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/983591
推荐阅读
相关标签
  

闽ICP备14008679号