python tkinter GUI绘制,以及点击更新显示图片代码


Posted in Python onMarch 14, 2020

tkinter 绘制GUI简单明了,制作一些简单的GUI足够,目前遇到的一个问题是不能同时排列显示多幅图片(目前没找到同时显示解决方法),

退而求其次,改成增加一个update按钮,每次点下按钮自动更新图片,注释掉的部分是原来的内核包,替换成自己的程序即可

python tkinter GUI绘制,以及点击更新显示图片代码

python tkinter GUI绘制,以及点击更新显示图片代码

import tkinter as tk
from tkinter import *
from tkinter import ttk
from urllib.request import urlopen
from PIL import Image, ImageTk
#import make_pic_2  在这里导入自己的py包文件
num=1
url = "./PICTURE/Rain.png"def calculate(*args):
  print(addr.get(),":",port.get())
  #make_pic_2.main(int(fft.get()),int(start.get()),int(stop.get()),int(cent.get()))
#调用自己的内核函数def change():    #更新图片操作
  global num
  num=num+1
  if num%3==0:
    url1="./PICTURE/Rain.png"
    pil_image = Image.open(url1)
    img= ImageTk.PhotoImage(pil_image)
    label_img.configure(image = img)
  if num%3==1:
    url1="./PICTURE/Oscillogram.png"
    pil_image = Image.open(url1)
    img= ImageTk.PhotoImage(pil_image)
    label_img.configure(image = img)
  if num%3==2:
    url1="./PICTURE/Spectrum.png"
    pil_image = Image.open(url1)
    img= ImageTk.PhotoImage(pil_image)
    label_img.configure(image = img)
  root.update_idletasks()  #更新图片,必须updateroot = Tk()
root.title("Draw GUI")mainframe = ttk.Frame(root, padding="5 4 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
addr = StringVar()
port = StringVar()
fft = StringVar()
cent = StringVar()
start= StringVar()
stop = StringVar()ttk.Label(mainframe, text="Address:").grid(column=1, row=1, sticky=W)
addr_entry = ttk.Entry(mainframe, width=7, textvariable=addr)
addr_entry.grid(column=2, row=1, sticky=(W, E))ttk.Label(mainframe, text="Port:").grid(column=3, row=1, sticky=W)
port_entry = ttk.Entry(mainframe, width=7, textvariable=port)
port_entry.grid(column=4, row=1, sticky=(W, E))ttk.Label(mainframe, text="FFt:").grid(column=1, row=2, sticky=W)
fft_entry = ttk.Combobox(mainframe, width=7, textvariable=fft)
fft_entry['values'] = (2048, 4096, 8192)
fft_entry.current(1)
fft_entry.grid(column=2, row=2, sticky=(W, E))ttk.Label(mainframe, text="CenterFR:").grid(column=3, row=2, sticky=W)
cent_entry = ttk.Entry(mainframe, width=7, textvariable=cent)
cent_entry.grid(column=4, row=2, sticky=(W, E))ttk.Label(mainframe, text="StartFR:").grid(column=1, row=3, sticky=W)
start_entry = ttk.Entry(mainframe, width=7, textvariable=start)
start_entry.grid(column=2, row=3, sticky=(W, E))ttk.Label(mainframe, text="StopFR:").grid(column=3, row=3, sticky=W)
stop_entry = ttk.Entry(mainframe, width=7, textvariable=stop)
stop_entry.grid(column=4, row=3, sticky=(W, E))ttk.Button(mainframe, text="Draw!", command=calculate).grid(column=2, row=4, sticky=W)
ttk.Button(mainframe, text="Update!", command=change).grid(column=4, row=4, sticky=W)
pil_image = Image.open(url)
img= ImageTk.PhotoImage(pil_image)
label_img = ttk.Label(root, image = img ,compound=CENTER)
label_img.grid(column=0,row=5, sticky=W)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
addr_entry.focus()root.bind('<Return>', calculate)  #主循环,除了这一行可以一直循环,其他行只执行一次root.mainloop()

以上这篇python tkinter GUI绘制,以及点击更新显示图片代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
Python基于pillow判断图片完整性的方法
Sep 18 Python
Python批量更改文件名的实现方法
Oct 29 Python
python3实现SMTP发送邮件详细教程
Jun 19 Python
Python实现的建造者模式示例
Aug 06 Python
python3+PyQt5 数据库编程--增删改实例
Jun 17 Python
python django 原生sql 获取数据的例子
Aug 14 Python
python global和nonlocal用法解析
Feb 03 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
Python 改变数组类型为uint8的实现
Apr 09 Python
python实时监控logstash日志代码
Apr 27 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
使用Python爬取弹出窗口信息的实例
Mar 14 #Python
解决django中form表单设置action后无法回到原页面的问题
Mar 13 #Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 #Python
在Django中预防CSRF攻击的操作
Mar 13 #Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 #Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 #Python
django 取消csrf限制的实例
Mar 13 #Python
You might like
使用PHP维护文件系统
2006/10/09 PHP
基于mysql的论坛(1)
2006/10/09 PHP
php 判断数组是几维数组
2013/03/20 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
Mac版PhpStorm之XAMPP整合apache服务器配置的图文教程详解
2016/10/13 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
Laravel5.1 框架路由基础详解
2020/01/04 PHP
jQuery each()小议
2010/03/18 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
jQuery实现的简洁下拉菜单导航效果代码
2015/08/26 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
Node.js重新刷新session过期时间的方法
2016/02/04 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
easy ui datagrid 从编辑框中获取值的方法
2017/02/22 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
python 图片验证码代码分享
2012/07/04 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python使用Matplotlib实现雨点图动画效果的方法
2017/12/23 Python
python3学生名片管理v2.0版
2018/11/29 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
python getpass实现密文实例详解
2019/09/24 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
Python 使用生成器代替线程的方法
2020/08/04 Python
Python 爬取淘宝商品信息栏目的实现
2021/02/06 Python
英国马莎百货印度官网:Marks & Spencer印度
2020/10/08 全球购物
视图的作用
2014/12/19 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
客服专员岗位职责
2014/02/28 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
委托书英文
2015/01/28 职场文书
2014年个人年终总结
2015/03/09 职场文书
Nginx安装配置详解
2022/06/25 Servers