Я использую Python (2.5), чтобы создать «средство просмотра веб-альбомов».
Я использую Tkinter для написания графического интерфейса, urllib2 для извлечения изображения из Интернета, PIL для обработки изображения
Пользователь нажимает кнопку, а затем создает виджет Toplevel, загружает изображение и отображает его в виджете Toplevel.
Кнопка привязана к методу look.
Итак, код такой:
class App:
#some codes are omitted here
def look(self, pic_url):
top = Toplevel()
more = More(top, pic_url)
class More:
def __init__(self, master, pic_url):
self.frame = Frame(master)
self.frame.pack()
response = urllib2.urlopen(pic_url)
open("inner_temp.jpg", "wb+").write(response.read())
self.picture = ImageTk.PhotoImage(file = "inner_temp.jpg")
self.photo_label = Label(self.frame, image = self.picture)
self.photo_label.pack()
Виджет Toplevel показывался, но внутри ничего нет.Я обнаружил, что «inner_temp.jpg» был загружен в папку правильно, но он просто не показывается.
Но самое странное, если я наберу один любой символ в конце кода, окно консоли будетпоказать сообщение об ошибке, но картинка отображается в виджете Toplevel!
def look(self, pic_url):
top = Toplevel()
more = More(top, pic_url)
class More:
def __init__(self, master, pic_url):
self.frame = Frame(master)
self.frame.pack()
response = urllib2.urlopen(pic_url)
open("inner_temp.jpg", "wb+").write(response.read())
self.picture = ImageTk.PhotoImage(file = "inner_temp.jpg")
self.photo_label = Label(self.frame, image = self.picture)
self.photo_label.pack()
x
NameError: глобальное имя 'x' не определено
Как это могло произойти !?Я действительно не могу понять!
Может ли кто-нибудь мне помочь?
Спасибо, и я извиняюсь за мой плохой английский.