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 相关文章推荐
Django admin美化插件suit使用示例
Dec 12 Python
浅谈Python中range和xrange的区别
Dec 20 Python
Tensorflow卷积神经网络实例
May 24 Python
Python爬取qq空间说说的实例代码
Aug 17 Python
python入门:这篇文章带你直接学会python
Sep 14 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
Django 迁移、操作数据库的方法
Aug 02 Python
python3实现高效的端口扫描
Aug 31 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
Vs Code中8个好用的python 扩展插件
Oct 12 Python
python中sqllite插入numpy数组到数据库的实现方法
Jun 21 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过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
smarty内置函数capture用法分析
2015/01/22 PHP
PHP+Mysql无刷新问答评论系统(源码)
2016/12/20 PHP
PHP基于自增数据如何生成不重复的随机数示例
2017/05/19 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
Laravel框架控制器,视图及模型操作图文详解
2019/12/04 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
JavaScript 高效运行代码分析
2010/03/18 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
javascript 常用验证函数总结
2016/06/28 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
JS中常用的消息框总结
2018/02/24 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
egg.js的基本使用和调用数据库的方法示例
2019/05/18 Javascript
详解Vue中组件传值的多重实现方式
2019/08/16 Javascript
关于Vue中axios的封装实例详解
2019/10/20 Javascript
JS浏览器BOM常见操作实例详解
2020/04/27 Javascript
JavaScript中的各种宽高属性的实现
2020/05/08 Javascript
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
python显示生日是星期几的方法
2015/05/27 Python
python的exec、eval使用分析
2017/12/11 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
HTML5移动端手机网站开发流程
2016/04/25 HTML / CSS
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
党支部书记先进事迹
2014/01/17 职场文书
中学生操行评语大全
2014/04/24 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
2014司机年终工作总结
2014/12/05 职场文书
微信早安问候语
2015/11/10 职场文书
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android