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计时相关操作详解【time,datetime】
May 26 Python
Python日期的加减等操作的示例
Aug 15 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
Python 字符串、列表、元组的截取与切片操作示例
Sep 17 Python
Flask之pipenv虚拟环境的实现
Nov 26 Python
opencv3/python 鼠标响应操作详解
Dec 11 Python
python numpy生成等差数列、等比数列的实例
Feb 25 Python
python-xpath获取html文档的部分内容
Mar 06 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
Pandas数据类型之category的用法
Jun 28 Python
python 判断文件或文件夹是否存在
Mar 18 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
Protoss热键控制
2020/03/14 星际争霸
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
php仿QQ验证码的实例分析
2013/07/01 PHP
php实现监听事件
2013/11/06 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
PHP中each与list用法分析
2016/01/08 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
javascript验证身份证号
2015/03/03 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
JS多文件上传的实例代码
2017/01/11 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
浅谈vue 单文件探索
2018/09/05 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
Vue 递归多级菜单的实例代码
2019/05/05 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
深入解析Python设计模式编程中建造者模式的使用
2016/03/02 Python
替换python字典中的key值方法
2018/07/06 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
python获取系统内存占用信息的实例方法
2020/07/17 Python
Python描述数据结构学习之哈夫曼树篇
2020/09/07 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
女性时尚在线:IVRose
2019/02/23 全球购物
日语专业个人求职信范文
2014/02/02 职场文书
美术课外活动总结
2014/07/08 职场文书
2015年办公室人员工作总结
2015/05/15 职场文书
安全生产感想
2015/08/07 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书