Прокручиваемое изображение вне границ - PullRequest
0 голосов
/ 21 мая 2019

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

Я использую текстовый виджет Tkinter.

def chat():       
        self.t = Text(self.root, borderwidth=4, width=72, height=15, font=("david",14))
        self.t.place(x=10, y=200)
        self.t.config(state=DISABLED)

def add_image(self, path,name):
        image = Image.open(path)
        photoImg = ImageTk.PhotoImage(image.resize((170, 170)))
        icon_size = Label(self.root)
        icon_size.image = photoImg  
        icon_size.configure(image=photoImg)
        icon_size.pack(side=LEFT)
        self.t.config(state=NORMAL)
        self.t.insert(END, name + ": ")
        self.t.window_create(END, window=icon_size) 
        self.t.insert(END, '\n')
        self.t.config(state=DISABLED)

1 Ответ

0 голосов
/ 22 мая 2019

Вот пример, который может быть полезен, но он основан на многих предположениях, учитывая, что вы не предоставили полный пример кода. Он также написан для Python 3, а не 2.7, поскольку Python Software Foundation не рекомендует писать новый код в 2.7.

from tkinter import *
import tkinter.scrolledtext as tkst

root = Tk()
t = tkst.ScrolledText(root,borderwidth=4,width=72,height=15)
t.grid()
t.config(state=DISABLED)

names = ['bill','allan','steve','chloe','annabelle','louise','stephanie']
images = []
icons = []

for name in names:
    img = PhotoImage(file='icon.gif')
    icon = Label(root)
    icon.image = img
    icon.configure(image=img)

    t.config(state=NORMAL)
    t.insert(END, name+":")
    t.window_create(END,window=icon)
    t.insert(END, "\n")

    images.append(img)
    icons.append(icon)

root.mainloop()

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

...