python动态换图tkinter库的Canvas画布组件
之前做统计彩票程序,然后想做个窗口程序在窗口里动态的想换哪个统计图表就看哪个,结果半天都做不好,网上各种混乱的代码几乎没一个能用的,最后干脆曲线救国,统计完之后统计视图自动保存成图片,这个比较简单,用savefig就行,然后想看哪张图就读取图片显示到窗口的画布上.
但是动态的在画布上换图很不容易,用了我一天的时间试了无数的代码终于找到了合适的,赶紧贴出来供大家分享.
我的代码写的比较烂,大家凑合看吧.
# -*- coding: utf-8 -*-
"""
Created on Mon May 13 22:27:47 2019
引入工具栏按钮
能换图了
把四种统计图都做了上来
@author: Administrator
"""
from PIL import Image, ImageTk
import matplotlib.pyplot as plt
from tkinter import *
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg,NavigationToolbar2Tk #NavigationToolbar2TkAgg
import matplotlib
matplotlib.use('Agg')
from matplotlib.pyplot import plot,savefig
from PIL import Image, ImageTk
from tkinter import ttkplt.rcParams['font.family'] = 'SimHei' ## 设置字体root = tk.Tk() # 初始化Tk()
root.title("排列3彩票统计程序") # 设置窗口标题
root.geometry("1920x1010+0+0") # 设置窗口大小 注意:是x 不是*
root.resizable(width=True, height=True) # 设置窗口是否可以变化长/宽,False不可变,True可变,默认为True
root['background']='white'def tp(event):canvas.create_image(-50,0,anchor=NW,image=img_png)
def tp2(event):canvas.create_image(-50,0,anchor=NW,image=img_png2)
def tp3(event):canvas.create_image(-50,0,anchor=NW,image=img_png3)
def tp4(event):canvas.create_image(-50,0,anchor=NW,image=img_png4)# 生成工具条
toolframe = tk.Frame(root, height=20, bg='#F7EED6')#, relief=tk.RAISED)
frame = tk.Frame(toolframe, bg='#F7EED6')
canvas = tk.Canvas(root,bg='white')
canvas.pack(fill=tk.BOTH, expand=1)
bt=ttk.Button(frame, width=20,text='0到9出现次数')
bt.bind("<Button-1>",tp)
bt.grid(row=0, column=0, padx=1, pady=1, sticky=tk.E)
img_open = Image.open('0到9出现次数.jpg')
img_png = ImageTk.PhotoImage(img_open)
btk=ttk.Button(frame, width=20,text='K线图')
btk.bind("<Button-1>",tp2)
btk.grid(row=0, column=1, padx=1, pady=1, sticky=tk.E)
img_open2 = Image.open('k线图.jpg')
img_png2 = ImageTk.PhotoImage(img_open2)
btdx=ttk.Button(frame, width=20,text='大小统计')
btdx.bind("<Button-1>",tp3)
btdx.grid(row=0, column=2, padx=1, pady=1, sticky=tk.E)
img_open3 = Image.open('大小走势图.jpg')
img_png3 = ImageTk.PhotoImage(img_open3)
btjo=ttk.Button(frame, width=20,text='奇偶统计')
btjo.bind("<Button-1>",tp4)
btjo.grid(row=0, column=3, padx=1, pady=1, sticky=tk.E)
img_open4 = Image.open('奇偶走势图.jpg')
img_png4 = ImageTk.PhotoImage(img_open4)
frame.pack(side=tk.LEFT)
toolframe.pack(fill=tk.X)root.mainloop() # 进入消息循环
建立窗口,窗口上有一个画布和几个按钮控件,想看哪张图就点哪个按钮,可以动态给画布换图,感觉精髓就是自定义函数加了个event参数,按钮控件里不要用command命令,读取图片要放在函数外操作,函数里边只放一条create_image命令
python动态换图tkinter库的Canvas画布组件相关推荐
- Python实战之tkinter库画图,用canver画布教你画会动的哆啦A梦
目录 tkinter库画图基本思路 画虚线 定义画原始人物的函数 点击眨眼 运动四肢 色彩变化 我们知道Python之所以强大,很大一方面都是因为它具有很多强大的第三方库. 而且Python很突出的一 ...
- 【Unity3D-UGUI系列】(一)Canvas 画布组件详解
推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉 ...
- 鸿蒙应用开发之canvas画布组件介绍
canvas画布组件用于自定义绘制图形. 方法:getContext和toDataURL getContext:getContext('2d')函数用于获取2D绘图引擎,调用方法为var ctx = ...
- python动态交互式图表库_五个创建交互式图表的Python库
数据可视化专家Andy Kirk说过,数据可视化分为两类:探索性可视化图表和解释性可视化图表.解释性可视化图表的目标是进行描述--它们是根据对事物表面的关键线索而被仔细构造出来的. 另一方面,探索性可 ...
- Python tkinter库之Canvas 直线等分圆弧(割圆术)
直线等分圆周,分隔得越多越接近于圆: import tkinter as tk import pyautogui as ag import random from time import sleep ...
- python动态交互式图表库_干货 | 使用pyecharts绘制交互式动态地图
干货 | 使用pyecharts绘制交互式动态地图 说到pyecharts,相信很多人不会陌生,一个优秀的python可视化包. pyecharts是中国人开发的,相比较matplotlib.seab ...
- 解决windows版本python下没有tkinter库问题
假设您在Windows上并且还安装了常规Python发行版(相同版本的嵌入式发行版),要在嵌入式发行版中安装Tkinter,您可以从常规Python发行版中复制以下文件: tcl folder to ...
- 海龟编程 python绘图工具turtle库的用法 turtle库使用方法大全,画笔设置 画布设置 绘图设置,画笔粗细,画笔颜色, 画笔速度。Python二级必须会的命令(已获取证书)
目录 海龟编程 python绘图工具turtle库的用法 画布: 画笔 画笔运动命令: 画笔的控制命令: 全局控制命令: 简单turtle绘图示例: 圆中方: 三色同心圆: 四个圆中方: 螺旋正方: ...
- Py之tkinter:tkinter库的简介、安装、使用方法之详细攻略
Py之tkinter:tkinter库的简介.安装.使用方法之详细攻略 目录 tkinter库的简介 tkinter库的安装 tkinter库的使用方法 1.tkinter的控件简介 1.1.tkin ...
最新文章
- 深入理解ROS技术 【1】ROS下的模块详解(1-65)
- 重启大法好!线上常见问题排查手册
- CCNA training notes
- 来一场蛋白和小分子的风花雪月
- UI设计干货素材|如何正确使用直观打折数字使画面更饱满更具促销感!
- 字节Java全能手册火了!Redis/Nginx/Dubbo/Spring全家桶/啥都有
- 数据浪潮之间的前端工程师
- a form 出口享惠情况_进出口报关
- Linux高可用集群方案之heartbeat基础原理及逻辑架构
- python cpk计算器_CPK公式
- 【UNIX网络编程】|【07】SCTP协议探究
- 当我在荒废时间的时候会有多少人在拼命
- 解决Unable to find a single main class from the following candidates
- ObjectARX反应器概述
- WINDY数----数位dp
- stack around xxx is corrupted
- DeepFM理论与实践
- 人生无根蒂,飘如陌上尘.
- 凯立德2018android零售版,凯立德2018冬季版C-CAR车机零售版懒人包C1204-C7P08-3J21J24
- 你的电脑卡吗?90%的人靠这5招给电脑提速!