2015-06-11 2 views
0

Я пытаюсь создать образ, но он не работает, и я не уверен, что я делаю неправильно. Все, что я получаю, когда я нажимаю кнопку, которая должна отображать изображение, - это белый холст, без изображения. Как мне его отобразить?Кнопка отображения белого холста вместо изображения

def show_original(self): 

    from os.path import exists 
    from PIL import Image, ImageTk 


    if not os.path.exists(self.wdg_orig_file_name_.get()): 
     tkMessageBox.showinfo('Load','File does not exist:' + self.wdg_orig_file_name_.get()) 

     return 
    self.orig_image_=Image.open(str_orig_file_name) 
    canvas = self.gui_.ca(500,500,bg='white') 
    im_TK = ImageTk.PhotoImage(self.orig_image_) 
    canvas.create_image(250,250,image=im_TK) 
    canvas.pack() 
    pass 

self.wdg_orig_file_name_.get() в главном цикле составляет:

self.wdg_orig_file_name_ = self.gui_.en(text='boat.png') 

Глобальная str_orig_file_name назначается в pick_file():

def pick_file(self): 
    '''Opens a file dialog and sets its result to the filename entry''' 
    global str_orig_file_name 
    str_orig_file_name = tkFileDialog.askopenfilename() 
    if str_orig_file_name: 
     self.wdg_orig_file_name_.delete(0, END) 
     self.wdg_orig_file_name_.insert(0, str_orig_file_name) 

     #We got a new image to process. Forget the previous results. 
     self.orig_image_ = None 
     self.preview_image_ = None 
+1

Так в чем ваш вопрос? Вы получили сообщение об ошибке? Что именно не работает? – cel

+0

Извините. Я редактировал мой вопрос. –

+1

Похоже, вы уже используете 'tkinter' в качестве своего инструментария GUI, правильно? И попытались ли вы сохранить последний объект 'PhotoImage'' im_TK' как 'self.im_TK', чтобы ссылка не собирала мусор? – TigerhawkT3

ответ

-1

Вы пробовали easygui?

#!/usr/bin/python 

from easygui import * 

image = "img.jpg" 
msg = "Do you like this picture?" 
choices = ["Yes","No","No opinion"] 
reply=buttonbox(msg,image=image,choices=choices) 

Очень просто.

http://www.ferg.org/easygui/tutorial.html

+1

OP четко не определил его, но похоже, что они используют виджеты и функции 'tkinter', поэтому я не думаю, что они ищут GUI-рекомендации (которые в любом случае будет вне темы). – TigerhawkT3

-1

Я сожалею. Я, хотя OP искал способ отображения изображения, и теперь я вижу, что изображение должно быть на кнопке. Ну, я пробовал это, и он отлично работает с .gif и .png. Однако .jpg выдает сообщение об ошибке: «_tkinter.TclError: не удалось распознать данные в файле изображения« img.jpg ».

#!/usr/bin/python 

from Tkinter import * 
root=Tk() 
b=Button(root,justify = LEFT) 
photo=PhotoImage(file="img.png") 
b.config(image=photo,width="100",height="100") 
b.pack(side=LEFT) 
root.mainloop() 
Смежные вопросы