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牛刀小试密码爆破
Feb 03 Python
使用Python编写Linux系统守护进程实例
Feb 03 Python
解决Python中由于logging模块误用导致的内存泄露
Apr 23 Python
Python函数返回值实例分析
Jun 08 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
详解python 字符串和日期之间转换 StringAndDate
May 04 Python
Python文件读写保存操作的示例代码
Sep 14 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
Python中作用域的深入讲解
Dec 10 Python
Python Django框架模板渲染功能示例
Nov 08 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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教程 预定义变量
2009/10/23 PHP
php数组中删除元素的实现代码
2012/06/22 PHP
PHP加密函数 Javascript/Js 解密函数
2013/09/23 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
常用的javascript function代码
2008/05/23 Javascript
js字符串转换成xml对象并使用技巧解读
2013/04/18 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
SuperSlide标签切换、焦点图多种组合插件
2015/03/14 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
2016/03/01 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
购物车前端开发(jQuery和bootstrap3)
2016/08/27 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
vue父组件通过props如何向子组件传递方法详解
2017/08/16 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python中创建字典的几种方法总结(推荐)
2017/04/27 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
python 常见的排序算法实现汇总
2020/08/21 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
英国时尚首饰品牌:Missoma
2020/06/29 全球购物
工程地质勘察专业大学生求职信
2013/10/13 职场文书
应届大学生的推荐信
2013/11/20 职场文书
好的旅游活动方案
2014/08/19 职场文书
作弊检讨书范文
2015/05/06 职场文书
社区党务工作总结2015
2015/05/19 职场文书
SQL Server中的游标介绍
2022/05/20 SQL Server
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers
cypress测试本地web应用
2022/06/01 Javascript