python gui按顺序显示图片_python tkinter GUI绘制,以及点击更新显示图片

importtkinter as tkfrom tkinter import *

from tkinter importttkfrom urllib.request importurlopenfrom PIL importImage, ImageTk#import make_pic_2 在这里导入自己的py包文件

num=1url= "./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(): #更新图片操作

globalnum

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()#更新图片,必须update

root=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('', calculate) #主循环,除了这一行可以一直循环,其他行只执行一次

root.mainloop()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值