上帝为你开了一扇窗之Tkinter常用函数详解


Posted in Python onJune 02, 2021

第一步:导入模块,无需安装

import tkinter

第二步:实现一个窗口

import tkinter
tk=tkinter.Tk()
tk.mainloop()

 上帝为你开了一扇窗之Tkinter常用函数详解

这样,我们应该基本的gui窗口就搞定了。接下来,我们给它加点东西,让它看起来更加独特。

第三步:修改窗口名称

tk.title("窗口")

上帝为你开了一扇窗之Tkinter常用函数详解

第四步:设置窗口大小

tk.geometry("300x150+700+300")

参数:width x height+x+y,

分别对应,窗口 宽,高,以及窗口出现的坐标,

桌面的坐标系:以桌面左上角为(0,0)向右为x轴正半轴,向下为y轴正半轴

设置固定大小:

tk.minsize(560, 545) # 最小尺寸
 
tk.maxsize(560, 545) # 最大尺寸

设置全屏模式:

tk.attributes("-fullscreen", True)#全屏模式:True 全屏;False 正常显示
注:全屏模式没有退出按钮,关闭可使用win+D最小化才能关闭

上帝为你开了一扇窗之Tkinter常用函数详解

第五步:获取当前桌面的尺寸

有时候我们需要获取到当前屏幕的大小,来决定我们窗口的大小,那就需要获取当前屏幕的宽高,如何获取呢?

w = tk.winfo_screenwidth()#获取屏幕宽
h = tk.winfo_screenheight()#获取屏幕高

上帝为你开了一扇窗之Tkinter常用函数详解

第六步:设置窗口图标

tk.iconbitmap('favicon.ico')#设置窗口图标,将ico放在同级目录下。

上帝为你开了一扇窗之Tkinter常用函数详解

第七步:设置窗口背景颜色

tk["background"] ="#7AC5CD"# 采用16色,或者"blue",颜色名称

上帝为你开了一扇窗之Tkinter常用函数详解

这里,我为大家准备一个网站,供大家选择颜色。

https://tool.oschina.net/commons?type=3

上帝为你开了一扇窗之Tkinter常用函数详解

第八步:设置窗口透明度

tk.attributes("-alpha", 0.6)#设置窗口透明度,透明度的值是:0~1 可以是小数点,0:全透明;1:全不透明

上帝为你开了一扇窗之Tkinter常用函数详解

第九步:设置顶部工具栏样式

tk.attributes("-toolwindow", True)#有退出,可以移动

工具样式:True 只有退出按钮,也没有图标; False 正常的窗体样式

上帝为你开了一扇窗之Tkinter常用函数详解

如果要将退出按钮都隐藏呢?

tk.overrideredirect(True)#无退出,不能移动,无工具栏

第十步:设置窗口置顶

tk.attributes("-topmost", True)
窗体置顶:True 所有窗口中处于最顶层;False 正常显示

使用场景,比如:桌面便签,需要显示在最顶层,又不妨碍其他软件使用。

上帝为你开了一扇窗之Tkinter常用函数详解

第十一步:获取tk窗体信息

# 获取屏幕的大小;
height = tk.winfo_height()
width = tk.winfo_width()
# 获取窗体的位置
x = tk.winfo_x()
y = tk.winfo_y()
通常结合.update()使用,获取窗口改变之后的数据。
我们可以用bind来记录。
tk.bind("", update_test)#绑定事件
def update_test(e):
    tk.update()
    # 获取屏幕的大小;
    height = tk.winfo_height()
    width = tk.winfo_width()
    # 获取窗体的位置
    x = tk.winfo_x()
    y = tk.winfo_y()
    print(width, height, x, y)
tk.bind("", update_test)

第十二步:添加标签

tkinter.Label(tk,text='标签1(0,0)').grid(column=0,row=0)#column表示x,row表示y
那如何来理解这个参数呢?
grid中参数,依然可以把他看做是x,y,当两个标签中间没有数据时,就会自然缩进。
如图2,其中没有2,所以就会自动将2省去。
如图三中,坐标就是确定这些小方格。设置标签样式:
tkinter.Label(tk,text='标签1(0,0)',background='red',font=30,).grid(column=0,row=0)#x,y
tkinter.Label(tk,text='标签1(1,1)',foreground='red').grid(column=1,row=1)#x,y
background='red'#标签背景颜色
font=30#字体大小
foreground='red'#字体颜色

第十三步:调用事件

button=Button(tk, text="事件调用", fg="blue",bd=2,width=8,command=update_test).grid(column=1,row=5)

每点击一次,就调用对应的函数。

上帝为你开了一扇窗之Tkinter常用函数详解

第十四步:插入图片

photo = tkinter.PhotoImage(file="图片.png")#file:t图片路径
imgLabel = tkinter.Label(tk,image=photo).grid(column=1,row=6)#把图片整合到标签类中

 上帝为你开了一扇窗之Tkinter常用函数详解

完整代码

import tkinter
from tkinter import *
tk=tkinter.Tk()
tk.title("窗口")#设置窗口名称
tk.geometry("300x150+700+300")
"""width x height+x+y,分别对应,窗口 宽,高,以及窗口出现的坐标
    桌面的坐标系:以桌面左上角为(0,0)向右为x轴正半轴,向下为y轴正半轴"""
w = tk.winfo_screenwidth()#获取屏幕宽
h = tk.winfo_screenheight()#获取屏幕高
print(w,h)
tk.iconbitmap('favicon.ico')#设置窗口图标,将ico放在同级目录下。
# 设置背景色,以“蓝色”为例
tk["background"] ="#7AC5CD"# "blue"
tk.attributes("-alpha",1)#设置窗口透明度,透明度的值是:0~1 可以是小数点,0:全透明;1:全不透明
tk.attributes("-toolwindow", True)#有退出,可以移动,工具样式:True 只有退出按钮,也没有图标; False 正常的窗体样式
#tk.overrideredirect(True)#无退出,不能移动,无工具栏
#tk.attributes("-fullscreen", True)#全屏模式:True 全屏;False 正常显示
tk.attributes("-topmost", True)#窗体置顶:True 所有窗口中处于最顶层;False 正常显示
# 获取屏幕的大小;
height = tk.winfo_height()
width = tk.winfo_width()
# 获取窗体的位置
x = tk.winfo_x()
y = tk.winfo_y()
print(width,height,x,y)
def update_test():
    tk.update()
    # 获取屏幕的大小;
    height = tk.winfo_height()
    width = tk.winfo_width()
    # 获取窗体的位置
    x = tk.winfo_x()
    y = tk.winfo_y()
    print(width, height, x, y)
# tk.bind("<Configure>", update_test)#绑定事件,窗体的改变事件
tkinter.Label(tk,text='标签1(0,0)',background='red',font=30,).grid(column=0,row=0)#x,y,设置标签,grid设置位置
tkinter.Label(tk,text='标签1(1,1)',foreground='red').grid(column=1,row=1)#x,y
tkinter.Label(tk,text='标签2').grid(column=4,row=3)
tkinter.Label(tk,text='标签3').grid(column=3,row=4)
 
button=Button(tk, text="事件调用", fg="blue",bd=2,width=8,command=update_test).grid(column=1,row=5)#按钮,添加按钮事件
 
photo = tkinter.PhotoImage(file="Figure_1.png")#file:t图片路径
imgLabel = tkinter.Label(tk,image=photo).grid(column=1,row=6)#把图片整合到标签类中
tk.mainloop()

到此这篇关于上帝给你开了一个窗口之Tkinter常用函数详解的文章就介绍到这了,更多相关Tkinter常用函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现的石头剪子布代码分享
Aug 22 Python
Python类属性与实例属性用法分析
May 09 Python
Linux下使用python自动修改本机网关代码分享
May 21 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
Sep 20 Python
Windows系统下多版本pip的共存问题详解
Oct 10 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
Dec 14 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
详解Python中pandas的安装操作说明(傻瓜版)
Apr 08 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
Python json转字典字符方法实例解析
Apr 13 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
只用20行Python代码实现屏幕录制功能
TensorFlow中tf.batch_matmul()的用法
Jun 02 #Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 #Python
python flask开发的简单基金查询工具
python爬取网页版QQ空间,生成各类图表
Python爬虫实战之爬取携程评论
Pytorch DataLoader shuffle验证方式
You might like
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
ThinkPHP实现支付宝接口功能实例
2014/12/02 PHP
帝国cms目录结构分享
2015/07/06 PHP
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
2016/11/16 PHP
[原创]php正则删除html代码中class样式属性的方法
2017/05/24 PHP
详解JavaScript函数
2015/12/01 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
浅谈React前后端同构防止重复渲染
2018/01/05 Javascript
JS实现电话号码的字母组合算法示例
2019/02/26 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
[38:32]完美世界DOTA2联赛循环赛 Forest vs DM 第二场 11.06
2020/11/06 DOTA
windows下python之mysqldb模块安装方法
2017/09/07 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
ipython和python区别详解
2019/06/26 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
2020/03/24 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
Web时代变迁及html5与html4的区别
2016/01/06 HTML / CSS
Html5 web本地存储实例详解
2016/07/28 HTML / CSS
合作意向书格式及范文
2014/03/31 职场文书
土地转让协议书
2014/04/15 职场文书
协议书范本
2014/04/23 职场文书
化学工程专业求职信
2014/08/10 职场文书
苏州园林导游词
2015/02/03 职场文书
个人廉政承诺书
2015/04/28 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
交通事故案件代理词
2015/05/23 职场文书
学困生转化工作总结
2015/08/13 职场文书
最新农村养殖致富:资金投入较低的创业项目有哪些?
2019/09/26 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL