Python tkinter库绘图实例分享

 更新时间:2022年04月10日 19:16:35   作者:简时刻  
这篇文章主要给大家分享了Python tkinter库绘图实例,主要分享实例有小房子绘制、彩色气泡动画绘制内容,需要的小伙伴可以参考一下,希望对你的学习有所帮助

一、小房子绘制

实例代码:

# coding=utf-8
import tkinter as tk      # 导入tkinter模块
 
root = tk.Tk()            # 创建一个顶级窗口
root.title('小房子1')     # 设置标题
canvas = tk.Canvas(root, bg='white', width=700, height=700)   # 在root窗口上创建画布canvas,白色背景,宽和高均为700像素
canvas.pack(anchor='center')   # canvas在root上居中显示
 
points = [(50, 250), (350, 50), (650, 250)]   # 三角形顶点坐标位置
canvas.create_polygon(points, fill='gray', outline='black', width=10)   # 白色填充,红色线条,线宽为10
canvas.create_rectangle((200, 250, 500, 550),
                        fill='white', outline='black', width=10)     # 绘制矩形,白色填充,绿色线条,线宽为10
canvas.create_oval((250, 300, 450, 500),
                   fill='purple', outline='black', width=10)    # 绘制圆形,黄色填充,黄色线条,线宽为10
 
root.mainloop()   # 进入消息循环

运行结果:

二、彩色气泡动画绘制

实例代码:

#coding=utf-8
import tkinter as tk
import random as rd
import time
# 全局变量,全部为list对象
# 分别为:x方向速度,y方向速度,半径,位置,图形标记
speedXList, speedYList, rList, posList, idList = [], [], [], [], []
# 可选的颜色
colorList = ['pink', 'gold', 'lightblue', 'lightgreen', 'silver']
# 画布的宽度、高度,以及图形个数
width, height, num = 400, 400, 5
root = tk.Tk()
# 创建和布局画布
canvas = tk.Canvas(root, width=width, height=height, background='white')
canvas.pack()
 
for i in range(num):
    # 随机产生图形初始位置
    x = rd.randint(100, width - 100)
    y = rd.randint(100, height - 100)
    # 添加到图形位置列表
    posList.append((x, y))
    # 随机产生半径,并添加到半径列表
    r = rd.randint(20, 50)
    rList.append(r)
    # 随机选取一种颜色
    color = rd.sample(colorList, 1)
    # 创建一个椭圆/圆,用选定的颜色填充
    id = canvas.create_oval(x - r, y - r, x + r, y + r,
                            fill=color, outline=color)
    # 保存图形标识
    idList.append(id)
# 设置随机的移动速度,并保存
    speedXList.append(rd.randint(-10, 10))
    speedYList.append(rd.randint(-10, 10))
 
while True:
    for i in range(num):
        # 图形当前所在位置
        item = posList[i]
        r = rList[i]
         # 如果x位置超过边界,则改编x速度方向
        if item[0] - r < 0 or item[0] + r > width:
            speedXList[i] = -speedXList[i]
        # 如果y位置超过边界,则改编y速度方向
        if item[1] - r < 0 or item[1] + r > height:
            speedYList[i] = -speedYList[i]
        # 按照当前的速度计算下新的位置
        posList[i] = (item[0] + speedXList[i], item[1] + speedYList[i])
        x, y = posList[i][0], posList[i][1]
        # 移动到新的位置
        canvas.coords(idList[i], (x - r, y - r, x + r, y + r))
        # 刷新画面
        canvas.update()
    # 等待0.1秒,即每秒钟更新10帧,形成动画
    time.sleep(0.1)

运行结果:

三、画布创建

实例代码:

import tkinter as tk           # 导入tkinter库,并重命名为tk
mywindow = tk.Tk()             # 创建一个窗体
mywindow.title("我是一个画布")      # 设置窗体的标题
mycanvas = tk.Canvas(mywindow, width=400, height=300, bg="purple")  # 创建画布并布局
 
mycanvas.pack()
mywindow.mainloop()      # 显示画布

运行结果:

到此这篇关于Python tkinter库绘图实例分享的文章就介绍到这了,更多相关tkinter库绘图内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pyqt5将多个类组合在一个界面显示的完整示例

    Pyqt5将多个类组合在一个界面显示的完整示例

    这篇文章主要给大家介绍了关于Pyqt5将多个类组合在一个界面显示的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-09-09
  • python 写入csv乱码问题解决方法

    python 写入csv乱码问题解决方法

    这篇文章主要介绍了python 写入csv乱码问题解决方法的相关资料,需要的朋友可以参考下
    2016-10-10
  • python Django 反向访问器的外键冲突解决

    python Django 反向访问器的外键冲突解决

    这篇文章主要介绍了python Django 反向访问器的外键冲突解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 基于python神经卷积网络的人脸识别

    基于python神经卷积网络的人脸识别

    这篇文章主要为大家详细介绍了基于python神经卷积网络的人脸识别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • Python设计模式之外观模式实例详解

    Python设计模式之外观模式实例详解

    这篇文章主要介绍了Python设计模式之外观模式,结合实例形式详细分析了外观模式的概念、原理、用法及相关操作注意事项,需要的朋友可以参考下
    2019-01-01
  • 详解pyinstaller selenium python3 chrome打包问题

    详解pyinstaller selenium python3 chrome打包问题

    这篇文章主要介绍了详解pyinstaller selenium python3 chrome打包问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 利用Python编写的实用运维脚本分享

    利用Python编写的实用运维脚本分享

    Python在很大程度上可以对shell脚本进行替代。笔者一般单行命令用shell,复杂点的多行操作就直接用Python了。本文归纳了Python中一些实用脚本操作,需要的可以参考一下
    2022-05-05
  • 浅谈Python任务自动化工具Tox基本用法

    浅谈Python任务自动化工具Tox基本用法

    这篇文章主要介绍了浅谈Python任务自动化工具Tox,tox 是一个管理测试虚拟环境的命令行工具, 它已存在多年且广被开发者们使用,对Python任务自动化工具Tox基本用法感兴趣的朋友一起看看吧
    2022-06-06
  • 快速解决jupyter启动卡死的问题

    快速解决jupyter启动卡死的问题

    这篇文章主要介绍了快速解决jupyter启动卡死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)

    Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)

    这篇文章主要介绍了Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02

最新评论