tkinter窗口美化功能介绍 第二章 怎么做圆角窗口
不要走哦,文章末尾有大礼包免费送给你!
作者都把礼物送你了,给个小小的赞呗~
这个方法我琢磨了好久,因为我的系统是视窗(Linux),想要从网上找到圆角的方法。方法有很多,但只适用于window。没法子,咱找不到,大不了自己做呗。现在,我把我这个方法毫无保留地告诉你,给个赞和收藏打赏打赏呗~
嗯嗯,这个方法要我来说,简直是天下无敌,因为这个方法适用于所有系统!亲测有效
(好吧好吧,圆角只是画出来的,当然通用)
啥?你要效果图?哈,上 图 片 !
【效果示例】
哈哈是不是你们想要的效果?是就看下去吧!
首先,咱们要一张圆角图片,生成网站在下边,非常好用!(建议圆角程度20)
网址:网址https://www.bejson.com/ui/borderradius/
【多说无益,代码伺候!】
class FilletWindowTk(Tk):def __init__(self,**kw):self.GWL_EXSTYLE = -20self.WS_EX_APPWINDOW = 0x00040000self.WS_EX_TOOLWINDOW = 0x00000080super(FilletWindowTk, self).__init__()self.attributes("-transparentcolor","#F0F0F0")self.overrideredirect(True)self.resizable(False,False)self.geometry("800x500+200+200")self.img = PhotoImage(file="background.png")self.label = Label(self,image=self.img,bd=0)self.label.place(x=0,y=0,width=800,height=500)self.label.pack()self.set_app_window(self)def set_app_window(self,root):hwnd = windll.user32.GetParent(root.winfo_id())style = windll.user32.GetWindowLongPtrW(hwnd, self.GWL_EXSTYLE)style = style & ~self.WS_EX_TOOLWINDOWstyle = style | self.WS_EX_APPWINDOWres = windll.user32.SetWindowLongPtrW(hwnd, self.GWL_EXSTYLE, style)# re-assert the new window styleroot.wm_withdraw()root.after(0, lambda: root.wm_deiconify())def iconic(self):self.update_idletasks()self.overrideredirect(False)self.state('iconic')def frame_mapped(self,e):self.update_idletasks()self.overrideredirect(True)self.state('normal')def draw_box_in_take(self):self.label.bind("<Map>", self.frame_mapped)def move_box_screen(self):self.geometry(f"800x500+{int((self.winfo_screenwidth() - 800) / 2)}+{int((self.winfo_screenheight() - 500) / 2)}")self.update()def toplevel_in_window(self):self.attributes("-topmost",1)def while_draw(self):while True:self.update()def have_move_func(self):self.label.bind("<ButtonPress-1>", self.mouse_down)self.label.bind("<ButtonRelease-1>", self.mouse_up)self.label.bind("<B1-Motion>", self.mouse_move)def mouse_down(self, event):self.move_yn = Trueself.mous_x = event.xself.mous_y = event.ydef mouse_up(self, event):self.move_yn = Falsedef mouse_move(self, event):if self.move_yn == True:self.geometry(f'+{event.x_root - self.mous_x}+{event.y_root - self.mous_y}')def update_all_function(self):self.set_app_window(self)self.have_move_func()self.toplevel_in_window()self.draw_box_in_take()self.have_move_func()if __name__ == "__main__":root = FilletWindowTk()root.update_all_function()root.mianloop()
这个是我自己写的一个圆角tk类,继承了原来的Tk类,直接运行时会报错的哈,因为这个有调用图片,下面给出项目样式
-----------------------------------------------------------项目样式----------------------------------------------------------
python项目名:\
圆角窗口.py (这个是主窗口,代码都在里边)
background.png (圆角图片,大小得是800x500)
---------------------------------------------------------------------------------------------------------------------------------
然后呢,效果嘛,就长这样,别问我为什么和上面的不同,问就是,我那个还没做好,代码不好发
【效果图 2】
是不是超级圆润?然后呢,我把那个超级tk类给你,那可是大礼包里的一部分!
《 上 大 礼 包 》:(CSDN下载,作者做的那么辛苦,1积分不过分吧?)
作者真不害臊,两天的事,说得好像做了很久!
网址:下载地址https://download.csdn.net/download/m0_66732591/86737042
———————————————————————————————————————————
谢谢阅读我的文章,你的鼓励是我最大的动力!
本文为 wsw的日常 原创,未经允许,严禁转载!违者必究!
tkinter窗口美化功能介绍 第二章 怎么做圆角窗口相关推荐
- tkinter窗口美化功能介绍 第一章 内部美化功能
今天我教大家做tkinter窗口美化 第一章 · tkinter内部美化功能 窗口透明化 窗口居中 窗口最大最小化 删除窗口标题栏 窗口大小调整的设置 1.窗口透明化 可以通过调整第二个值来设置透明度 ...
- ChatGPT功能介绍 ChatGPT都能做什么
ChatGPT是智能AI程序,它能完成很多领域的内容创作,那么ChatGPT都能做什么呢?请看下面的ChatGPT功能介绍,一起来了解下吧. 完整文档打开姿势:ChatGPT国内使用方式完整文档 Ch ...
- 合服 两个服务器都有什么作用,S2赛季转服功能介绍 第二赛季合服转服注意事项...
三国志战略版将在S2赛季开始后对目前的服务器进行合区操作,而同时在二赛季末还将开启转服功能.那么这些牵扯到账号数据的操作有什么需要我们注意的呢?接下来就让我们了解一下吧. 三国志战略版S2赛季合区须知 ...
- 第二章:IEEE2030.5官网相关资料介绍
第一章:2030.5.CSIP.Rule21简介 and 本项目内容介绍 第二章:IEEE2030.5官网相关资料介绍 第三章:IEEE2030.5文档 第四章:Common Smart Invert ...
- 第二章 Qt编程核心技术
QT编程核心技术介绍 第二章 Qt编程核心技术 Qt/X11与Qt/Embedded版本的Qt类库,尽管类的底层实现有一些细微区别,但类的声明及方法函数是一样的,对于编写Qt应用程序的编程者来说,几乎 ...
- STM32学习笔记 第二章 STM32资源介绍
第二章 STM32资源介绍 2.1 芯片选型 STM32-F1系列(如图2-1): 基础型,主频为72M(内核为cortex-M3),CPU位数=32. 我们所用的芯片是STM32F103vet6 S ...
- 《Getting Started with WebRTC》第二章 WebRTC技术介绍
<Getting Started with WebRTC>第二章 WebRTC技术介绍 本章作WebRTC的技术介绍,主要讲下面的概念: . 怎样建立P2P的通信 . 有效的信 ...
- 『基础教学第二章』MMD基本功能详解-Kinsama
大家好,本篇教学会对MMD中基本而重要的功能做详细介绍 使用模型:YYB式ENE 第一部分:操作界面 图看不清没关系,我会做详细解释 我们先熟悉一下操作界面 ...
- Django by Example·第二章|Enhancing Your Blog with Advanced Features(为博客系统添加高级功能)@笔记
Django by Example·第二章|Enhancing Your Blog with Advanced Features(为博客系统添加高级功能)@笔记 这本书的结构确实很不错,如果能够坚持看 ...
最新文章
- 自定义Android注解Part3:绑定
- EntLib.com Forum – 开源ASP.NET论坛 v4.0(提供源码下载)
- 闭包应用之延迟函数setTimeout
- N皇后问题12 · N-Queens
- R语言时间序列数据应用xts
- Linux命令_用户,权限管理
- ElasticSearch(1)CentOS安装ElasticSearch测试CRUD
- dp交换机命令_H3C-交换机维护命令大全
- Activiti6快速入门指南
- jquery进度条组件
- 常用公差配合表图_车间里常用的机械测量工具竟然这么多?涨知识
- QuickTime Component实例
- 软件系统设计-1-软件设计原则
- python学习之编写学员管理系统
- EasyCVR平台如何实现超低延时的安防视频监控直播?
- html制作打飞机的游戏,JavaScript 小型打飞机游戏实现原理说明
- 关于sp和unity近似的PBR的一篇国外文章
- 凸优化基础知识笔记-凸集、凸函数、凸优化问题
- javascript学习-canvas
- 数据表与简单Java类映射转换
热门文章
- 树状数组的进阶运用(Stars 数星星)
- 基于python的百度云网盘资源搜索引擎设计架构
- marvell raid linux,MARVELL RAID管理软件操作演示
- java工程师的自我评价_Java开发工程师-自我评价怎么写(范文)
- 联发科MT5592数字电视DTV芯片处理器参数介绍
- 一辈子是场修行 短的是旅行 长的是人生
- 如何将手机投屏到windows10上?
- 《Patterns, Principles, and Pract》— chapter14 Introducing the Domain Modeling Building Blocks
- 尚硅谷2020最新版宋红康JVM教程-中篇-第3章类的加载过程(类的生命周期)详解-4-过程三:Initialization(初始化)阶段
- UI想设计得好,这几款软件少不了