Я новичок в использовании пакета 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()