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中的__init__和__new__
Mar 12 Python
使用PDB简单调试Python程序简明指南
Apr 25 Python
pandas修改DataFrame列名的方法
Apr 08 Python
pandas 根据列的值选取所有行的示例
Nov 07 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
python 实现查找文件并输出满足某一条件的数据项方法
Jun 12 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 Python
python实现最短路径的实例方法
Jul 19 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
用基于python的appium爬取b站直播消费记录
Apr 17 Python
Python中requests做接口测试的方法
May 30 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+ajax实时聊天室
2016/07/20 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
jQuery 定时局部刷新(setInterval)
2010/11/19 Javascript
改进版通过Json对象实现深复制的方法
2012/10/24 Javascript
使用JavaScript 实现各种跨域的方法
2013/05/08 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
小心!AngularJS结合RequireJS做文件合并压缩的那些坑
2016/01/09 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
基于jQuery.i18n实现web前端的国际化
2018/05/04 jQuery
LayUi中接口传数据成功,表格不显示数据的解决方法
2018/08/19 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
Vue ​v-model相关知识总结
2021/01/28 Vue.js
Python使用Srapy框架爬虫模拟登陆并抓取知乎内容
2016/07/02 Python
python批量制作雷达图的实现方法
2016/07/26 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
Python中的pack和unpack的使用
2018/03/12 Python
python一行sql太长折成多行并且有多个参数的方法
2018/07/19 Python
python 顺时针打印矩阵的超简洁代码
2018/11/14 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
django 模型中的计算字段实例
2020/05/19 Python
Python实现JS解密并爬取某音漫客网站
2020/10/23 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
HTML5有哪些新特征
2015/12/01 HTML / CSS
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
瑞典廉价机票预订网站:Seat24
2018/06/19 全球购物
DBA的职责都有哪些
2012/05/16 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
小车司机岗位职责
2013/11/25 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
最新的离婚协议书范本!
2019/07/02 职场文书
实习报告范文
2019/07/30 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
Python编写冷笑话生成器
2022/04/20 Python