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字符串方法的简单使用
Jul 18 Python
Django自定义manage命令实例代码
Feb 11 Python
python 将字符串转换成字典dict的各种方式总结
Mar 23 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
Python根据当前日期取去年同星期日期
Apr 14 Python
Jacobi迭代算法的Python实现详解
Jun 29 Python
python+numpy实现的基本矩阵操作示例
Jul 19 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
python数据类型可变不可变知识点总结
Mar 06 Python
解决pycharm下pyuic工具使用的问题
Apr 08 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加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
PHP根据两点间的经纬度计算距离
2014/10/31 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
开启PHP的伪静态模式
2015/12/31 PHP
PHP内核学习教程之php opcode内核实现
2016/01/27 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
PHP goto语句用法实例
2019/08/06 PHP
jquery 批量上传图片实现代码
2010/01/28 Javascript
jQuery库与其他JS库冲突的解决办法
2010/02/07 Javascript
JavaScript DOM 学习第五章 表单简介
2010/02/19 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
微信小程序调用天气接口并且渲染在页面过程详解
2019/06/24 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
Python合并两个字典的常用方法与效率比较
2015/06/17 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
对于Python深浅拷贝的理解
2019/07/29 Python
英国领先的男士服装和时尚零售商:Burton
2017/01/09 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
医学毕业生自我鉴定
2013/10/30 职场文书
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
学习决心书
2014/03/11 职场文书
幼教求职信
2014/03/12 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
根叔历年演讲稿
2014/05/20 职场文书
竞聘自述材料
2014/08/25 职场文书
竞聘演讲稿怎么写
2014/08/28 职场文书
余世维讲座观后感
2015/06/11 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫
MutationObserver在页面水印实现起到的作用详解
2022/07/07 Javascript