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编写百度贴吧的简单爬虫
Apr 02 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
python抓取网页中链接的静态图片
Jan 29 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
python3的UnicodeDecodeError解决方法
Dec 20 Python
Python pip配置国内源的方法
Feb 14 Python
python实现音乐播放和下载小程序功能
Apr 26 Python
python有几个版本
Jun 17 Python
Python生成并下载文件后端代码实例
Aug 31 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
Nov 28 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
程序员编程十条戒律
2009/07/09 PHP
Yii使用Captcha验证码的方法
2015/12/28 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
HTTP状态代码以及定义(解释)
2007/02/02 Javascript
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
javascript实现密码验证
2015/11/10 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
JavaScript模拟鼠标右键菜单效果
2020/12/08 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
Ajax高级笔记 JavaScript高级程序设计笔记
2017/06/22 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
基于Vue实例对象的数据选项
2017/08/09 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
2015/05/16 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python矩阵的转置和逆转实例
2018/12/12 Python
Python读取csv文件分隔符设置方法
2019/01/14 Python
django序列化serializers过程解析
2019/12/14 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
c语言常见笔试题总结
2016/09/05 面试题
办公室文秘岗位职责
2013/11/15 职场文书
社团活动策划书范文
2014/01/09 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android