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中操作字典之clear()方法的使用
May 21 Python
Python模拟百度登录实例详解
Jan 20 Python
numpy使用fromstring创建矩阵的实例
Jun 15 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
python禁用键鼠与提权代码实例
Aug 16 Python
Flask框架 CSRF 保护实现方法详解
Oct 30 Python
python ctypes库2_指定参数类型和返回类型详解
Nov 19 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
多个python文件调用logging模块报错误
Feb 12 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python 获取剪切板内容的两种方法
Nov 28 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
Mar 04 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
source.php查看源文件
2006/12/09 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
smarty表格换行实例
2014/12/15 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
JsRender for object语法简介
2014/10/31 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
ionic实现滑动的三种方式
2016/08/27 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
ES6新特性之字符串的扩展实例分析
2017/04/01 Javascript
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
python动态性强类型用法实例
2015/05/09 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python调用百度REST API实现语音识别
2018/08/30 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
没编程基础可以学python吗
2020/06/17 Python
美特斯邦威官方商城:邦购网
2016/10/13 全球购物
全球最大化妆品零售网站:SkinStore
2020/10/24 全球购物
运动会广播稿30字
2014/01/21 职场文书
公司门卫管理制度
2014/02/01 职场文书
办理房产过户的委托书
2014/09/14 职场文书
升职自我推荐信范文
2015/03/25 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
九年级数学教学反思
2016/02/17 职场文书
Python 中的单分派泛函数你真的了解吗
2021/06/22 Python
MySQL读取JSON转换的方式
2022/03/18 MySQL
Nginx 安装SSL证书完成HTTPS部署
2022/04/28 Servers
Win11无法安装更新补丁KB3045316怎么办 附KB3045316补丁修复教程
2022/08/14 数码科技
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js