gpt4 book ai didi

如何使用Tkinter进行窗口的管理与设置

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章如何使用Tkinter进行窗口的管理与设置由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1、tkinter介绍

作为 python 特定的gui界面,是一个图像的窗口,tkinter是python 自带的,可以编辑的gui界面,我们可以用gui 实现很多直观的功能,比如想开发一个计算器,如果只是一个键盘输入,输出的黑色窗口,是没用用户体验的。所有开发一个图像化的小窗口,就是必要的.

对于稍有gui编程经验的人来说,python的tkinter界面库是非常简单的。python的gui库非常多,选择tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,三则是从需求出发,python作为一种脚本语言,或者说一种胶水语言,一般不会用它来开发复杂的桌面应用,它并不具备这方面的优势,使用python,可以把它作为一个灵活的工具,而不是作为主要开发语言,那么在工作中,需要制作一个小工具,肯定是需要有界面的,不仅自己用,也能分享别人使用,在这种需求下,tkinter是足够胜任的! 。

如何使用Tkinter进行窗口的管理与设置

tkinter是python默认的gui库,像idle就是用tkinter设计出来的,因此直接导入tkinter模块就可以了:

?
1
import tkinter

2、tkinter之初体验

接下来从最简单的例子入手:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import tkinter as tk
 
# 创建一个主窗口,用于容纳整个gui程序
root = tk.tk()
# 设置主窗口对象的标题栏
root.title( "first demo" )
# 设置窗口大小
root.geometry( '500x300+100+100' )
# 添加一个label组件,label组件是gui程序中最常用的组件之一。
# label组件可以显示文本、图标或者图片
# 在这里我们让它显示指定文本
thelabel = tk.label(root, text = "我的第一个tkinter窗口!" )
# 然后调用label组件的pack()方法,用于自动调节组件自身的尺寸
thelabel.pack()
# 注意,这时候窗口还是不会显示的…
# 除非执行下面这条代码!
root.mainloop()

执行程序,如图所示.

如何使用Tkinter进行窗口的管理与设置

loop因为是循环的意思,root.mainloop就会让root不断的刷新,如果没有mainloop,就是一个静态的root,传入进去的值就不会有循环,mainloop就相当于一个很大的while循环,有个while,每点击一次就会更新一次,所以我们必须要有循环。 所有的窗口文件都必须有类似的mainloop函数,mainloop是窗口文件的关键的关键.

意思是一旦进入了主事件循环,就由tkinter掌管一切了。现在不理解没关系,在后面的学习中你会有深刻的体会。gui程序的开发与以往的开发经验会有截然不同的感受.

通常如果要写一个比较大的程序,那么应该先把代码给封装起来。在面向对象的编程语言中,就是封装成类。看下面进阶版的例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import tkinter as tk
 
 
def create_button(root):
     # 创建一个按钮组件
     # fg 是 foreground 的缩写, 就是设置前景色的意思
     say_hello = tk.button(root, text = '打招呼' , fg = 'blue' , command = eat)
     say_hello.pack()
     return root
 
 
def eat():
     print ( '今天你吃饭了吗?' )
 
 
root = tk.tk()
app = create_button(root)
 
root.mainloop()

程序跑起来后出现一个“打招呼”按钮,单击它就能从idle接收到回馈信息,如图15-3所示.

如何使用Tkinter进行窗口的管理与设置

3、窗口的管理与设置

不知道大家是否注意到了,上述举例的简单demo程序存在窗口显示混乱的情况,这样的一个界面显然是不符合我们要求的。所以我们首先要开始学习如何使用tkinter去控制我们的窗口 。

3.1、基本属性设置

1.添加标题 。

?
1
2
# 设置窗口标题
root.title( "title" )

2.添加图标 。

?
1
2
#  设置图标,以onedrive图标为例,必须是以 .ico 为后缀的图标文件,放于同目录下。
root.iconbitmap( "onedrive.ico" )

3.设置背景 。

?
1
2
#  设置背景色,可以用英文名,也可以用十六进制表示的颜色。
root[ "background" ] = "#00ffff"

完整代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#  导入模块,取别名
import tkinter as tk
#  实例化一个窗体对象
root = tk.tk()
#  设置窗口的大小长宽为300x300出现的位置距离窗口左上角+150+150
root.geometry( "300x300+150+150" )
#  设置窗口标题
root.title( "title" )
#  设置图标,以onedrive图标为例,必须是以 .ico 为后缀的图标文件,放于同目录下。
root.iconbitmap( "onedrive.ico" )
#  设置背景色,可以用英文名,也可以用十六进制表示的颜色。
root[ "background" ] = "#00ffff"
#  进入消息循环,显示窗口
root.mainloop()

效果演示 。

如何使用Tkinter进行窗口的管理与设置

3.2、外形设置

1.设置透明度 。

?
1
2
#  透明度的值:0~1 也可以是小数点,0:全透明;1:全不透明
root.attributes( "-alpha" , 0.6 )

2.设置工具栏样式 。

?
1
2
#  true 只有退出按钮,也没有图标;false 正常的窗体样式
root.attributes( "-toolwindow" , true)

效果演示 。

如何使用Tkinter进行窗口的管理与设置

3.设置全屏 。

?
1
2
#  true 全屏;false 正常显示
root.attributes( "-fullscreen" , true)

4.窗口置顶 。

?
1
2
#  true 所有窗口中处于最顶层;false 正常显示 两个同时被置顶的窗口为同级(能互相遮盖),但他们都能同时遮盖住没有被设置为置顶的窗口。
root.attributes( "-topmost" , true)

5.设置成脱离工具栏 。

?
1
2
#  true 没有工具栏按钮;false 正常显示
root.overrideredirect(true)

完整代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#  导入模块,取别名
import tkinter as tk
#  实例化一个窗体对象
root = tk.tk()
#  设置窗口的大小长宽为300x300出现的位置距离窗口左上角+150+150
root.geometry( "300x300+150+150" )
#  设置窗口标题
root.title( "title" )
#  设置图标,以onedrive图标为例,必须是以 .ico 为后缀的图标文件,放于同目录下。
root.iconbitmap( "onedrive.ico" )
#  设置背景色,可以用英文名,也可以用十六进制表示的颜色。
root[ "background" ] = "#00ffff"
#  true 全屏;false 正常显示
root.attributes( "-fullscreen" , true)
#  true 所有窗口中处于最顶层;false 正常显示 两个同时被置顶的窗口为同级(能互相遮盖),但他们都能同时遮盖住没有被设置为置顶的窗口。
root.attributes( "-topmost" , true)
#  true 没有工具栏按钮;false 正常显示
root.overrideredirect(true)
#  进入消息循环,显示窗口
root.mainloop()

3.3、窗体的方法

1.获取屏幕大小 。

?
1
2
screenheight = root.winfo_screenheight()
screenwidth = root.winfo_screenwidth()

完整代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#  导入模块,取别名
import tkinter as tk
#  实例化一个窗体对象
root = tk.tk()
#  获取屏幕大小
screenheight = root.winfo_screenheight()
screenwidth = root.winfo_screenwidth()
print ( "屏幕高度:" , screenheight)
print ( "屏幕宽度:" , screenwidth)
rootwidth = 300
roothight = 300
#  设置窗口在屏幕居中
root.geometry( "%dx%d+%d+%d" % (rootwidth, roothight, (screenwidth - rootwidth) / 2 , (screenheight - roothight) / 2 ))
#  进入消息循环,显示窗口
root.mainloop()

演示效果 。

如何使用Tkinter进行窗口的管理与设置

2.获取窗体位置 。

?
1
2
root_x = root.winfo_x()
root_y = root.winfo_y()

3.获取窗体大小 。

?
1
2
root_height = root.winfo_height()
root_width = root.winfo_width()

完整代码 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#  导入模块,取别名
import tkinter as tk
#  实例化一个窗体对象
root = tk.tk()
#  设置窗体高宽和位置
root.geometry( "600x500+150+150" )
#  更新窗体
root.update()
#  获取窗体位置
root_x = root.winfo_x()
root_y = root.winfo_y()
#  获取窗体大小
root_height = root.winfo_height()
root_width = root.winfo_width()
#  输出窗体位置和窗体高宽
print (root_x)
print (root_y)
print (root_width)
print (root_y)
#  进入消息循环,显示窗口
root.mainloop()

演示效果 。

如何使用Tkinter进行窗口的管理与设置

以上就是如何使用tkinter进行窗口的管理与设置的详细内容,更多关于tkinter 窗口的管理与设置的资料请关注我其它相关文章! 。

最后此篇关于如何使用Tkinter进行窗口的管理与设置的文章就讲到这里了,如果你想了解更多关于如何使用Tkinter进行窗口的管理与设置的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com