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卸载模块的方法汇总
Jun 07 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
用Pygal绘制直方图代码示例
Dec 07 Python
python安装模块如何通过setup.py安装(超简单)
May 05 Python
Python对象与引用的介绍
Jan 24 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
Python读取YAML文件过程详解
Dec 30 Python
pyecharts动态轨迹图的实现示例
Apr 17 Python
python常见的占位符总结及用法
Jul 02 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
linux环境apache多端口配置虚拟主机的方法深入介绍
2013/06/09 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP filesize函数用法浅析
2019/02/15 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
Laravel数据库读写分离配置的方法
2019/10/13 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
如何用ajax来创建一个XMLHttpRequest对象
2012/12/10 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
jquery实现点击消失的代码
2014/03/03 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
在JavaScript中操作时间之setYear()方法的使用
2015/06/12 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
浅谈js中的引用和复制(传值和传址)
2016/09/18 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
SeaJS中use函数用法实例分析
2017/10/10 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
Python使用django搭建web开发环境
2017/06/09 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
优秀党员转正的自我评价
2013/10/06 职场文书
女方婚礼新郎答谢词
2014/01/11 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
土木工程求职信
2014/05/29 职场文书
预备党员自我评价范文
2015/03/04 职场文书
2015年班组工作总结
2015/04/20 职场文书
实施意见格式范本
2015/06/05 职场文书
vscode内网访问服务器的方法
2022/06/28 Servers