Как я могу показать изображение в метке, которая вставляется через имя_списка? - PullRequest
0 голосов
/ 13 декабря 2018

Я новичок в питоне и мне тяжело.Невозможно показать изображение в метке.(PS- Синтаксис функции OpenFile правильный. Здесь я не могу сделать отступ правильно: P)

import tkinter as tk
from tkinter import ttk
from tkinter import *
from tkinter.filedialog import askopenfilename
from PIL import ImageTk,Image

root=tk.Tk()
root.title("python gui")
root.geometry("1200x600")

def OpenFile():
    name=askopenfilename(initialdir="C:/Users/Batman/Documents/Programming/tkinter/",
                       filetypes =(("JPEG FILE", "*.jpg"),("PNG FilES","*.png"),("bitmap","*.bmp")),
                       title = "Choose a file."
                       )
    print (name)

    try:
        with open(name,'r') as UseFile:
            print(UseFile.read())
    except:
        print("No file exists")

buttone=Button(embedtab,text="select image",command=OpenFile)
buttone.grid(row=1,column=0)

labelframe3=tk.LabelFrame(embedtab, text="originsal image", padx=100,pady=100)
labelframe3.grid(column=0,row=0)
ttk.Label(labelframe3, text="original image will display here").grid(column=0, row=0, sticky=tk.W)

1 Ответ

0 голосов
/ 13 декабря 2018

Непонятно, как вы собираетесь работать с функцией OpenFile().Почему бы не позволить Подушке открыть изображение, см. Мой пример.

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

Я устанавливаю рамку метки на определенный размер и использую grid_propagate(), чтобы не допустить изменения размера, когда я показываю изображение в прилагаемой метке.

Изображение появляется в верхнем левом углу рамки.Вы можете изменить это, рассчитав соответствующий отступ по размеру изображения и т. Д.

Это было то, что вы хотели?

from tkinter import ttk
from tkinter import *
from tkinter.filedialog import askopenfilename
from PIL import ImageTk, Image

root = Tk()
root.title("python gui")
root.geometry("500x400")

def OpenFile():
    name = askopenfilename(initialdir=".",
                           filetypes =(("JPEG FILE", "*.jpg"),
                                       ("PNG FilES","*.png"),
                                       ("bitmap","*.bmp")),
                           title = "Choose a file.")
    print (name)

    try:
        pillow_img = Image.open(name)   # Open image with Pillow
        tk_img = ImageTk.PhotoImage(image=pillow_img) # Convert to PhotoImage
        original_frame.config(image=tk_img) # Put in label
        original_frame.image = tk_img       # Save reference to image
    except:
        print("Can't read file")

buttone = Button(root, text="select image", command=OpenFile)
buttone.grid(row=1,column=0)

labelframe3 = LabelFrame(root, text="original image", width=200, height=200)
labelframe3.grid(column=0, row=0, padx=20, pady=20)
labelframe3.grid_propagate(False)

original_frame = ttk.Label(labelframe3)
original_frame.grid(column=0, row=0, padx=10, pady=10)

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