請問如何使用python在GUI中添加動圖,我添加了gif,它不會動,我查了方法添加定時器函式后就行了,但是該如何設定按鍵顯示多張gif圖,我現在是只顯示了一張gif圖。
或者能不能用多張不動的圖在GUI里拼湊成可以動的動圖。
uj5u.com熱心網友回復:
import imageioimport networkx as ne #匯入建網路模型包,命名ne
import matplotlib.pyplot as mp #匯入科學繪圖包,命名mp
import tkinter as tk
win = tk.Tk()
win.title('tk')
gif_images = []
def draw_save():
for n in range(1, 21):
rg = ne.erdos_renyi_graph(n, 0.5)
ps = ne.shell_layout(rg) # 布置框架
ne.draw_networkx(rg, ps, with_labels=False, node_size=30)
mp.savefig('隨機網路\\隨機網路%d.png' % n)
mp.close()
gif_images.append(imageio.imread("隨機網路\\""隨機網路" + str(n) + ".png")) # 讀取圖片
imageio.mimsave("隨機網路\\隨機網路.gif", gif_images, fps=1)
numIdx = 20 # gif的幀數
# 填充6幀內容到frames
frames = [tk.PhotoImage(file='隨機網路\\隨機網路.gif', format='gif -index %i' % (i))for i in range(numIdx)]
def update(idx): # 定時器函式
frame = frames[idx]
idx += 1 # 下一幀的序號:在0,1,2,3,4,5之間回圈(共6幀)
l1.configure(image=frame) # 顯示當前幀的圖片
win.after(500, update, idx % numIdx) # 0.1秒(100毫秒)之后繼續執行定時器函式(update)
l1 = tk.Label(win)
l1.pack()
b1 = tk.Button(win,text='生成',command=draw_save)
b1.pack()
b2 = tk.Button(win,text='清除')
b2.pack()
win.after(0,update,0)
win.mainloop()
uj5u.com熱心網友回復:
現在就是這種情況,只能顯示一張gif,我想設定成按一個按鍵就顯示一張gif。uj5u.com熱心網友回復:
我不知道update那個函式怎么改 才能實作按一個鍵顯示一張圖片轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/109435.html
上一篇:python pytorch CUDA 跑深度學習 GPU運行 獨顯2g 但是運行時只用1g就爆顯了 求大神解答下
