(Tkinter, Python 2.7) Импортируйте изображение с помощью tkFileDialog, затем отображайте изображение в отдельном кадре - PullRequest
0 голосов
/ 21 марта 2019

Я новичок в использовании пакета Tkinter, и я борюсь с одной проблемой.

Я пытаюсь импортировать изображение через tkFileDialog,
, затем отображать импортированное изображение на отдельном кадре, используя PIL.Image, но мой код не работает.

Я сделал:

img_name = StringVar()

def directory():
    '''Function that activates when pressing button'''
    '''Uses tkFileDialog to bring in an image (.jpg, .png)'''
    img_name.set(filename) # set full path of the image.
    img_print.set(only_filename[::-1]) # set only the name of the image.

тогда вне определения я пробовал но ничего не печатает.

img_name.get()

Это должно сработать, чтобы я мог сделать

Image.open(img_name)

import Tkinter as tk
import ttk
from Tkinter import *
import tkMessageBox
import tkFileDialog
import tkFont

from PIL import Image, ImageTk

## --------------------- DEFINITIONS ------------------------------##

# Import local file
def directory():

    filename = tkFileDialog.askopenfilename(
               initialdir='~/Desktop/Bachelor_Project/GUI_Tkinetr')

    img_name = img_name.get()
    img_print = img_print.get()

    only_filename = ''

    for letter in filename[::-1]:

        if letter == '/':
            break
        only_filename += letter

    img_name.set(filename) # Full pathway
    img_print.set(only_filename[::-1]) # Only the image name

    img = Image.open(filename)
    img_size.set(str(img.size[0]) + "x" + str(img.size[1]))

#---------------------- INITIALIZATION / INPUTS ------------------------------------#
parent = Tk()
parent.title('Shoulder pointer')
parent.geometry('900x450')

img_name = StringVar() # [instance]full image pathway
img_print = StringVar() # [instance] Only the image name
img_size = StringVar() # [instance] Image size ex) 512x512

mainframe = Frame(parent)

## Minor frame 1 construction ##
# Display imported image
''' Getting Errors, I don't know how to solve.'''
imported_img = Image.open(img_name.get())
img_integrate = ImageTk.PhotoImage(imported_img)
ttk.Label(mainframe, image=img_integrate)

parent.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...