前言:
现时咱们对“python的tkinter模块”大体比较注重,各位老铁们都需要了解一些“python的tkinter模块”的相关知识。那么小编在网络上收集了一些对于“python的tkinter模块””的相关文章,希望朋友们能喜欢,兄弟们一起来学习一下吧!基本概念
GUI - Graphical User Interface. 中文叫图形用户接口。图像用户接口可以看做为人与计算机之间的沟通媒介。
如果想为自己写的程序做一个易于操作的界面,那么,tkinter应该是最容易上手的图形接口开发工具。
tkinter 是python自带的模块,在安装python的同时,tkinter模块就已经在系统里了。只需import导入,即可使用。tkinter模块并没有网上说的那么差,只是官方编写的tkinter的文档很差劲。之后的一段时间,我会将tkinter模块的使用做一个详细的介绍。
导入tkinter模块
from tkinter import * 或者是 import tkinter as tk
这是两种最常见的导入写法。
from X import * 和 import X 的区别
在导入python 模块的时候,很多时候我们都面临上述两种导入的选择。下面我将说明这两种方法的区别。
import X
import X 意味着创建了一个模块 X的引用。假设模块X里有一个函数方法 func(),如果想调用func,就需要使用完整的路径,例如 X.func();
from X import *
from X import * 意味着对模块X里的所有对象创建了引用。此时,如果想调用func,只需要使用func()即可。同时,由于你并没有创建X的引用,你将无法通过X.func()调用func方法。
举个例子,模块X相当于姓氏,模块X里的对象相当于名。如果一个班两个 ’天天‘,一个叫陶天天,一个叫欧天天。那么,老师就需要加上姓去区分两个’天天‘。但是,如果班里只有一个孩子叫’天天‘,就只需要喊’天天‘就好。
导入tkinter模块之后,可以使用TkVersion去查看tkinter模块的版本。
import tkinter as tkprint(tk.TkVersion)Out[2]: 8.6创建窗口
tkinter中的Tk() 方法可以创建一个根窗口,之后添加的控件将会被放进这个创建的窗口里。
import tkinter as tkwindow = tk.Tk()window.mainloop()
window.mainloop() 会启动创建的window GUI。
窗口建立好,就需要进行一些相关的设置。比如窗口标题,图标,大小,底色等等。
添加图标
默认的图标是一片树叶,如上图左上角。自己建的窗口,自然想换上漂亮、大气的图标。tkinter提供了iconbitmap 方法来更换图标。如果想使用下图作为图标,我们只需要如下设置。
import tkinter as tkwindow = tk.Tk()window.iconbitmap('palm-tree-icon.ico')window.mainloop()
'palm-tree-icon.ico' 是图标存储的路径,如果图标在程序所在的文件夹里,可以直接调用。不然就得使用完整的路径。
设置标题
默认的窗口标题是左上角的tk,通过title()可以设置窗口的标题。
import tkinter as tkwindow = tk.Tk()window.title('逃学联盟')window.iconbitmap('palm-tree-icon.ico')window.mainloop()
设置背景颜色
使用configure()设置背景颜色,window.configure(bg='#008CBA')
import tkinter as tkwindow = tk.Tk()window.title('逃学联盟')window.configure(bg='#008CBA')window.iconbitmap('palm-tree-icon.ico')window.mainloop()
设置窗口大小和屏幕的相对位置
geometry()可以用来设置初始窗口的大小以及窗口于屏幕的相对位置。注意,代码中的x不是乘法,是字母xy的x。具体方法如下:
.geometry("窗口宽 x 窗口高 + 屏幕左边框相对距离 + 屏幕上边框相对距离")。
import tkinter as tkwindow = tk.Tk()window.title('逃学联盟')window.configure(bg='#008CBA')window.geometry("500x100+300+300")window.iconbitmap('palm-tree-icon.ico')window.mainloop()
上述代码创建了一个500 * 100 px大小的窗口,窗口左上角坐标是(300,300)。
如果需要将窗口放在屏幕的正中,可以通过一些简单的计算和geometry()方法。
通过.winfo_screenwidth() 和 .winfo_screenheight() 方法可以得到屏幕的宽和高。如果我们需要将窗口放在屏幕正中,窗口的左边框距离屏幕的左边框为 (屏幕宽 - 窗口宽)/ 2。
import tkinter as tkwindow = tk.Tk()window.title('逃学联盟')window.configure(bg='#008CBA')window_width = 500window_height = 100screen_width = window.winfo_screenwidth()screen_height = window.winfo_screenheight()x = int((screen_width - window_width)/2)y = int((screen_height - window_height)/2)window.geometry(f"{window_width}x{window_height}+{x}+{y}")window.iconbitmap('palm-tree-icon.ico')window.mainloop()设置窗口的最小的宽高,最大的宽高,全屏显示和窗口是否可以拖拽大小
.resizable(True, True)方法设置窗口的宽和长是否可以拖拽调整大小;
.minsize(宽, 高)方法设置窗口的最小宽高;
.maxsize(宽, 高)方法设置窗口的最大宽高;
.state('zoomed')方法设置窗口全屏显示
.maxsize(宽, 高)方法 和 .state('zoomed')方法不要同时使用。
import tkinter as tkwindow = tk.Tk()window.title('逃学联盟')window.configure(bg='#008CBA')window.resizable(True, True)window.minsize(100, 100)# window.maxsize(1000, 500)window.state('zoomed')window_width = 500window_height = 100screen_width = window.winfo_screenwidth()screen_height = window.winfo_screenheight()x = int((screen_width - window_width)/2)y = int((screen_height - window_height)/2)window.geometry(f"{window_width}x{window_height}+{x}+{y}")window.iconbitmap('palm-tree-icon.ico')window.mainloop()实例1
鉴于还没有开始其他的tkinter组件,第一个实例借助after方法实现窗口背景色的更换还有窗口的关闭。
after(delay_ms, callback=None, *args)
after()方法会每隔delay_ms (毫秒)调用callback的函数。
window.destroy()方法会关闭window窗口。
import tkinter as tkimport randomwindow = tk.Tk()window.title('逃学联盟')window.configure(bg='#008CBA')window.resizable(True, True)window.minsize(100, 100)# window.maxsize(1000, 500)window.state('zoomed')window_width = 500window_height = 100screen_width = window.winfo_screenwidth()screen_height = window.winfo_screenheight()x = int((screen_width - window_width)/2)y = int((screen_height - window_height)/2)window.geometry(f"{window_width}x{window_height}+{x}+{y}")window.iconbitmap('palm-tree-icon.ico')bg_color_list = ['#008CBA', '#FFA500', '#4CAF50', '#f44336']def adjust_bg_color(): if bg_color_list: rand = random.choice(bg_color_list) window.configure(bg=rand) window.after(2000, adjust_bg_color) bg_color_list.remove(rand) else: window.destroy()window.after(0, adjust_bg_color)window.mainloop()定义一个列表 bg_color_list 含有四种不同的颜色代号;定义callback函数 adjust_bg_color, 如果adjust_bg_color里有值,则随机挑选一个颜色,并更改窗口的bg属性;每隔2000毫秒调用一次adjust_bg_color;列表 bg_color_list 中移除被选中的颜色代号;如果列表 bg_color_list 为空,则关闭窗口;
感兴趣的同学可以自行运行例子,后面会逐一介绍tkinter的组件。谢谢大家!
标签: #python的tkinter模块