python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)


Posted in Python onMay 17, 2021

在上一篇的基础上,继续在透明窗体上绘制小球

一、画个大球看看

(一)核心代码

在on_resize函数内部增加如下画圆的代码

canvas.create_oval(100, 100, 200, 200,
                       outline='yellow',  # 边框颜色
                       fill='pink',  # 填充颜色
                       width=4  # 边框宽度
                       )

运行效果如下:

python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)

嘻嘻,是不是觉得有点意思。

好吧,后续我会分享这部分的完整代码给各位,希望大家不是拿来主义,能点点赞、关注一下我啊。

二、让小球随机运动起来

(一)核心函数

def create_ball(canvas,tk):
    # tkinter绘图采用屏幕坐标系,原点在左上角,x从左往右递增,y从上往下递增
    # 在绘图区域内,随机产生当前球的圆心的x坐标和y坐标,用于制定出现的位置
    xpos = randint(10, int(tk.winfo_width()))
    ypos = randint(10, int(tk.winfo_height()))

    # 随机产生表示当前球的大小,也就是半径长度
    radius = randint(40, 70)

    # 通过lambda表达式创建函数对象r,每次调用r()都会产生0~255之间的数字
    r = lambda: randint(0, 255)

    # 三次调用的数字取前两位,用十六进制数方式存储到self.color里,作为球的颜色
    # RRGGBB,前2是红色,中2是绿色,后2是蓝色,最小是0,最大是F

    # 如全黑#000000  全白#FFFFFF  全红#FF0000
    color = "#%02x%02x%02x" % (r(), r(), r())

    # canvas.create_oval可以绘制一个圆
    # 但是需要传入圆的左、上、右、下四个坐标
    # 所以我们先产生4个坐标,通过这个四个坐标,绘制圆的大小

    # 左坐标=x坐标-半径
    x1 = xpos - radius
    # 上坐标=y坐标-半径
    y1 = ypos - radius
    # 右坐标=x坐标+半径
    x2 = xpos + radius
    # 下坐标=y坐标+半径
    y2 = ypos + radius

    # 通过canvas.create_oval()方法绘出整个圆,填充色和轮廓色分别是self.color生成的颜色
    canvas.delete('ball')
    ball = canvas.create_oval(x1, y1, x2, y2, fill=color, outline=color,tag='ball')
    # canvas.addtag_all('t5')
    print(x1,y1,x2,y2,color,radius)

    canvas.after(1000, create_ball,canvas,tk)

(二)运行效果

python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)

随机的小球运动效果就出来了。

三、更多参数的优化

(一)去掉标题栏

tk.overrideredirect(1)

(二)置顶显示

tk.wm_attributes("-topmost", 1)

(三)把旁边的白边去掉

canvas.config(highlightthickness=0)

呵呵,窗体最后就变成光秃秃的了。
也许按需使用会更好!!

(四)运行效果

python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)

呵呵,什么都没有了,只剩下随机的小球还在界面上显示。

代码量不大,效果还行。
再深入研究可以有更多更有趣的应用。

以上就是python使用tkinter实现透明窗体上绘制随机出现的小球的详细内容,更多关于python tkinter透明窗体小球的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python验证码识别处理实例
Dec 28 Python
Python实现的爬虫功能代码
Jun 24 Python
Python之文字转图片方法
May 10 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
如何通过python画loss曲线的方法
Jun 26 Python
django的ORM操作 增加和查询
Jul 26 Python
Ubuntu中配置TensorFlow使用环境的方法
Apr 21 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
Python 日期与时间转换的方法
Aug 01 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 Python
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
Pytorch 实现变量类型转换
Python进度条的使用
May 17 #Python
Python包管理工具pip的15 个使用小技巧
Python中json.dumps()函数的使用解析
May 17 #Python
Python中threading库实现线程锁与释放锁
Python中Cookies导出某站用户数据的方法
May 17 #Python
You might like
PHP学习笔记之数组篇
2011/06/28 PHP
PHP学习笔记(二):变量详解
2015/04/17 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
javascript之ESC(第二类混淆)
2007/05/06 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
js实现图片旋转的三种方法
2014/04/10 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
JQuery控制radio选中和不选中方法总结
2015/04/15 Javascript
js实现鼠标滑过文字链接色彩变化的效果
2015/05/06 Javascript
AngularJS 入门教程之事件处理器详解
2016/08/19 Javascript
nodejs实现的简单web服务器功能示例
2018/03/15 NodeJs
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python脚本实现集群检测和管理功能
2015/03/06 Python
使用Python抓取模板之家的CSS模板
2015/03/16 Python
Python实现网络端口转发和重定向的方法
2016/09/19 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
2018/12/12 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
PyQt5 多窗口连接实例
2019/06/19 Python
远程部署工具Fabric详解(支持Python3)
2019/07/04 Python
python 判断三个数字中的最大值实例代码
2019/07/24 Python
详解CSS中iconfont的使用
2015/08/04 HTML / CSS
施工资料员的岗位职责
2013/12/22 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
司法局群众路线教育实践活动开展情况总结
2014/10/25 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
婚礼答谢词
2015/01/04 职场文书
nginx日志格式分析和修改
2022/04/28 Servers