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 异常处理的实例详解
Sep 11 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
Python实现的各种常见分布算法示例
Dec 13 Python
深入了解python中元类的相关知识
Aug 29 Python
在pandas中遍历DataFrame行的实现方法
Oct 23 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
将keras的h5模型转换为tensorflow的pb模型操作
May 25 Python
python实现图像外边界跟踪操作
Jul 13 Python
通过代码简单了解django model序列化作用
Nov 12 Python
python中复数的共轭复数知识点总结
Dec 06 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
pandas进行数据输入和输出的方法详解
Mar 23 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使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
分析PHP中单双引号的误区和双引号小隐患
2016/07/19 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
深入讲解PHP的对象注入(Object Injection)
2017/03/01 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
Ajax中解析Json的两种方法对比分析
2015/06/25 Javascript
JavaScript中eval()函数用法详解
2015/12/14 Javascript
Jquery跨域获得Json的简单实例
2016/05/18 Javascript
js 数字、字符串、布尔值的转换方法(必看)
2017/04/07 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
浅谈webpack打包过程中因为图片的路径导致的问题
2018/02/21 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
基于ant design日期控件使用_仅月份的操作
2020/10/27 Javascript
Python解析xml中dom元素的方法
2015/03/12 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
2016/08/30 Python
Python使用 Beanstalkd 做异步任务处理的方法
2018/04/24 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
Python 运行 shell 获取输出结果的实例
2019/01/07 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
python 实现逻辑回归
2020/12/30 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
证婚人经典证婚词
2014/01/09 职场文书
财务主管自我鉴定
2014/01/17 职场文书
初中作文评语大全
2014/04/23 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
见习报告的格式
2014/10/31 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript
解析MySQL索引的作用
2022/03/03 MySQL