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中使用Flask、MongoDB搭建简易图片服务器
Feb 04 Python
python uuid模块使用实例
Apr 08 Python
Python中动态检测编码chardet的使用教程
Jul 06 Python
Python实现学校管理系统
Jan 11 Python
wxpython实现图书管理系统
Mar 12 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
django model通过字典更新数据实例
Apr 01 Python
Python爬取股票信息,并可视化数据的示例
Sep 26 Python
Lombok插件安装(IDEA)及配置jar包使用详解
Nov 04 Python
基于PyTorch实现一个简单的CNN图像分类器
May 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开源开发框架ZendFramework使用中常见问题说明及解决方案
2014/06/12 PHP
php上传文件常见问题总结
2015/02/03 PHP
php构造函数的继承方法
2015/02/09 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
php数组冒泡排序算法实例
2016/05/06 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
JavaScript实现的使用键盘控制人物走动实例
2014/08/27 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
微信小程序实现自定义picker选择器弹窗内容
2020/05/26 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
2019/06/19 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
python format 格式化输出方法
2018/07/16 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
2018/12/06 Python
Django 中自定义 Admin 样式与功能的实现方法
2019/07/04 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
python3中布局背景颜色代码分析
2020/12/01 Python
逼真的HTML5树叶飘落动画
2016/03/01 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
澳大利亚在线床零售商:Bedworks
2020/09/01 全球购物
元旦联欢会主持词
2014/03/26 职场文书
庆元旦演讲稿
2014/09/15 职场文书
党员批评与自我批评总结
2014/10/15 职场文书