小言_互联网的博客

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口(Tkinter)

309人阅读  评论(0)

过分了,别人用来做桌面应用开发,这家伙却用来撩妹(1)--上帝给你开一个窗口(Tkinter)—tkinter常用函数解析

前言

 

构思了很长一段时间,迟迟没有动手编写,因为总感觉不够有趣,斟酌了许久,找到了一个比较有趣的。于是打算出一个完整的系列,让大家一起感受python的乐趣。

为了让初学者也非常清楚的知道我的构思,我都会以一种通俗易懂的方式来为大家呈现出来。在此,感谢的大家的阅读。

我们这个系列,着重以系统库中的tkinter为中心来围绕进行编写。因此我们的第一步是导入模块。

我们的第一节就来为大家建立一个窗口。

 

正文步骤实现

上帝给你开一个窗口(Tkinter)

 

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

 

import tkinter

 

第二步:实现一个窗口

 


  
  1. import tkinter
  2. tk=tkinter.Tk()
  3. tk.mainloop()

 

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

第三步:修改窗口名称

tk.title("窗口")

第四步:设置窗口大小

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

参数:width x height+x+y,

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

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

设置固定大小:


  
  1. tk.minsize( 560545# 最小尺寸
  2. tk.maxsize( 560545# 最大尺寸

设置全屏模式:

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

 

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

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


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

第六步:设置窗口图标

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

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

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

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

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

 

第八步:设置窗口透明度

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

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

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

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

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

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

第十步:设置窗口置顶


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

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

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


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

  
  1. def update_test(e):
  2.     tk.update()
  3.     # 获取屏幕的大小;
  4.     height = tk.winfo_height()
  5.     width = tk.winfo_width()
  6.     # 获取窗体的位置
  7.     x = tk.winfo_x()
  8.     y = tk.winfo_y()
  9.     print(width, height, x, y)
  10. tk.bind("", update_test)

第十二步:添加标签

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

  
  1. tkinter.Label(tk,text='标签1(0,0)',background='red',font=30,).grid(column=0,row=0)#x,y
  2. tkinter.Label(tk,text='标签1(1,1)',foreground='red').grid(column=1,row=1)#x,y

  
  1. background='red'#标签背景颜色
  2. font=30#字体大小
  3. foreground='red'#字体颜色

第十三步:调用事件

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

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

第十四步:插入图片


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

 

完整代码


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

关注我,了解更多好玩有趣的编程。

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第四节)-视频,语音合成

动态数据视频(第一节)

bilibili,抖音很火的动态数据视频自动生成(第二节)

matplotlib-bilibili,抖音很火的动态数据视频自动生成(第三节)

matplotlib给女朋友画一个爱心吧,这份满满的爱意,一定要记得收下

 


转载:https://blog.csdn.net/qq_39046854/article/details/117428879
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场