我正試圖實現簡單的圖像查看器,您可以從2張圖片中進行選擇。我有一個提供這些照片的menubutton。選擇其中一個圖像後,程序將創建3個或5個按鈕。我想追加到每個這些按鈕不同的圖像,所以第一個按鈕將有一個圖像,第二個按鈕將有另一個圖像等等。我用for循環創建了一個函數來創建這些按鈕,但是從這一點開始無法繼續。我可以向所有人添加一張圖片,但不能一張一張地添加不同的圖片。 感謝您的幫助圖像查看器/按鈕圖像
try:
import Tkinter as tk
except ImportError:
import tkinter as tk
from functools import partial
from PIL import Image, ImageTk
class Halabala():
def __init__(self):
self.master = tk.Tk()
self.master.geometry("1100x700")
self.lists_labels = []
self.rbutton = tk.Menubutton(self.master, text = "Choose picture")
self.picks2 = tk.Menu(self.rbutton)
self.rbutton.config(menu=self.picks2)
self.picks2.add_command(label = "Spider", command = partial(self.create_labels,3))
self.picks2.add_command(label = "Sugar", command = partial(self.create_labels,5))
self.rbutton.config(width = 30, bg = "white", bd = 5, relief = tk.RAISED)
self.rbutton.place(x = 900, y = 30)
self.master.mainloop()
def create_labels(self, num):
self.picture = Image.open("blue.gif")
self.picture.thumbnail((130,130))
self.tkim = ImageTk.PhotoImage(self.picture)
for label in self.lists_labels:
label.destroy()
self.lists_labels=[]
for i in range(num):
but = tk.Button(self.master, image = self.tkim)
but.grid(row = i + 1, column = 0)
self.lists_labels.append(but)
myapp = Halabala()
提示:你需要的圖像列表使用了不同的按鈕。目前,您只能使用一張圖片。然後你可以像'but = tk.Button(self.master,image = self.list_tkims [i])那樣做'' – joaquin
非常感謝,不知道它實際上有多簡單,但我還有一個問題。有沒有辦法創建一個函數,它將所有的圖像轉換爲ImageTk,然後以某種方式將它們保存爲「tkim_1」,「tkim_2」等,而不是逐個轉換每個圖像。以下是我嘗試去做的事情:http://pastie.org/8624064 – Chilcone
是的,你可以使用循環來創建它們,但將它們保存在列表中以便之後使用它們。現在你在每個循環中覆蓋self.name。 – joaquin