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的Django框架中的缓存控制
Jul 24 Python
Python字符串转换成浮点数函数分享
Jul 24 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
Python中print和return的作用及区别解析
May 05 Python
Python基础学习之基本数据结构详解【数字、字符串、列表、元组、集合、字典】
Jun 18 Python
Python的几种主动结束程序方式
Nov 22 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
详解python tcp编程
Aug 24 Python
python UIAutomator2使用超详细教程
Feb 19 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
自制短波长线天线频率预选器 - 成功消除B2K之流的镜像
2021/03/02 无线电
收藏的一个php小偷的核心程序
2007/04/09 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
BootStrap Table对前台页面表格的支持实例讲解
2016/12/22 Javascript
正则中的回溯定义与用法分析【JS与java实现】
2016/12/27 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
vue vue-Router默认hash模式修改为history需要做的修改详解
2018/09/13 Javascript
小程序如何使用分包加载的实现方法
2019/05/22 Javascript
基于JS实现简单滑块拼图游戏
2019/10/12 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
[54:19]完美世界DOTA2联赛PWL S2 Magma vs PXG 第二场 11.28
2020/12/01 DOTA
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Python 中的lambda函数介绍
2018/10/10 Python
在python中将字符串转为json对象并取值的方法
2018/12/31 Python
python按比例随机切分数据的实现
2019/07/11 Python
python 函数中的参数类型
2020/02/11 Python
Selenium 配置启动项参数的方法
2020/12/04 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
前端实现背景虚化但内容清晰且自适应 的实例代码
2019/08/01 HTML / CSS
加拿大著名的奢侈品购物网站:SSENSE(支持中文)
2020/06/25 全球购物
大家检讨书5000字
2014/02/03 职场文书
质量管理标语
2014/06/12 职场文书
出国留学自荐信模板
2015/03/06 职场文书
TensorFlow中tf.batch_matmul()的用法
2021/06/02 Python
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技