首页 / 程序员圈 / 正文
逃学博士出品 - 为python插上翅膀,可视化接口工具tkinter的详解
123474192 发表于:2020-5-22 15:39:31 复制链接 看图 发表新帖
阅读数:11075

下载APP可以快速和圈友联系

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
根基概念

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()
逃学博士出品 - 为python插上同党,可视化接口工具tkinter的详解-1.jpg

建立的窗口,取名window

window.mainloop() 会启动建立的window GUI。

窗口建立好,就需要停止一些相关的设备。比如窗口题目,图标,巨细,底色等等。
增加图标

默许的图标是一片树叶,如上图左上角。自己建的窗口,自然想换上标致、大气的图标。tkinter供给了iconbitmap 方式来更换图标。假如想利用下图作为图标,我们只需要以下设备。


逃学博士出品 - 为python插上同党,可视化接口工具tkinter的详解-2.jpg

图标
import tkinter as tkwindow = tk.Tk()window.iconbitmap('palm-tree-icon.ico')window.mainloop()
'palm-tree-icon.ico' 是图标存储的途径,假如图标在法式地点的文件夹里,可以间接挪用。否则就得利用完整的途径。

逃学博士出品 - 为python插上同党,可视化接口工具tkinter的详解-3.jpg

图标变动后的窗口
设备题目

默许的窗口题目是左上角的tk,经过title()可以设备窗口的题目。
import tkinter as tkwindow = tk.Tk()window.title('逃学同盟')window.iconbitmap('palm-tree-icon.ico')window.mainloop()
逃学博士出品 - 为python插上同党,可视化接口工具tkinter的详解-4.jpg

题目变动后的窗口

设备布景色彩

利用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()
逃学博士出品 - 为python插上同党,可视化接口工具tkinter的详解-5.jpg

布风景设备后的窗口
设备窗口巨细和屏幕的相对位置

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)。

逃学博士出品 - 为python插上同党,可视化接口工具tkinter的详解-6.jpg

图片来历收集

假如需要将窗口放在屏幕的正中,可以经过一些简单的计较和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的组件。感谢大师!


上一篇:java poi操纵excel示例代码
下一篇:软件工程师是什么专业?
温馨提示:
下载好向圈客户端可以随时随地交流学习经验,也可以和圈友发起聊天成为好友
好向圈www.kuaixunai.com是一个专业经验分享交流平台,请提供优质的经验内容分享,拒绝任何广告内容出现,低质量广告内容硬广包含手机号码,微信,QQ或者二维码,网址等形式存在可能会审核不通过甚至封号 圈友联系仅限于好向圈APP进行及时沟通咨询 要想被各大搜索引擎尽快收录请做好内容原创工作,才会有更好的推广效果。
返回列表
使用道具 举报
16 条评论
您需要登录后才可以回帖 登录 | 立即注册
纯手工工p 发表于 2020-5-22 15:44:34 | 阅读全部
不错,循序渐进,显而易懂,老师讲的好
使用道具 举报
回复
123473299 发表于 2020-5-22 15:49:14 | 阅读全部
最终结果给个截图看看啥样啊,虎头蛇尾嘛这不
[赞]+1
使用道具 举报
回复
宗国俊 发表于 2020-5-22 15:52:54 | 阅读全部
复杂的能做么
使用道具 举报
回复
旁白景器跟 发表于 2020-5-22 15:55:52 | 阅读全部
逃学博士出品 - 为python插上翅膀,可视化接口工具tkinter的详解
使用道具 举报
回复
布拉丁古 发表于 2020-5-22 16:01:32 | 阅读全部
转转
使用道具 举报
回复
旌麾 发表于 2020-5-22 16:03:14 | 阅读全部
使用道具 举报
回复
柳暗花明啪啪啪 发表于 2020-5-22 16:05:28 | 阅读全部
讲得不错
使用道具 举报
回复
月已逝终不存bv 发表于 2020-5-22 16:12:10 | 阅读全部
注意下python版本等环境说明,有坑
使用道具 举报
回复
小小林公子按 发表于 2020-5-22 16:14:32 | 阅读全部
最终结果给个截图看看啥样啊,虎头蛇尾嘛这不
使用道具 举报
回复
思忆飞扬zhongyu 发表于 2020-5-22 16:17:47 | 阅读全部
开源的软件界面都这么儿童画……
使用道具 举报
回复
杜小薇妈妈 发表于 2020-5-22 16:21:08 | 阅读全部
转发了
使用道具 举报
回复
ivywyw2017 发表于 2020-5-22 16:22:28 | 阅读全部
转发了
使用道具 举报
回复
123473506 发表于 2020-5-22 16:24:10 | 阅读全部
转发了
使用道具 举报
回复
烟线雷 发表于 2020-5-22 16:30:29 | 阅读全部
转发了
使用道具 举报
回复
淡然ew 发表于 2020-5-22 16:33:30 | 阅读全部
转发了
使用道具 举报
回复
冬菱扇子 发表于 2020-5-22 16:35:34 | 阅读全部
转发了
使用道具 举报
回复
广告合作以及侵权投诉客服QQ:1623331347 江苏好向圈信息科技有限公司 网站地图1 网站地图2