Tkinter. Text. Python2.7. Не выводится текст
Проблема заключается в следующем: при нажатии на кнопку "вперёд" или "назад" меняется изображение (это работает) и вместе с ним должен выводится текст в другой виджет.
#-*- coding: utf-8 -*-#
#Импорт библиотек#
import sys,os
sys.path.append("mdls/")
from PIL import Image,ImageTk
import Tkinter,tkMessageBox
#import textf as tf
#Создание трёх основных виджетов#
root_image = Tkinter.Tk()
root_image.geometry("400x400+100+140")
root_image.title("Изображения")
root_text = Tkinter.Toplevel()
root_text.geometry("600x400+300+300")
root_text.title("Текст")
buttons_frame = Tkinter.Toplevel()
buttons_frame.title("Управление")
buttons_frame.geometry("300x30+0+0")
buttons_frame.resizable(0,0)
import glob
image_list = glob.glob("images/*.gif")
text_list = glob.glob("text/*.txt")
current_image = 0
current_text = 0
def program_information():
info_widget = Tkinter.Toplevel()
info_widget.title("Информация")
info_widget.geometry("595x650+650+100")
info_widget.resizable(0,0)
who_created = ("\t|Создал NAME NAME | 2015 год|")
text= Tkinter.Text(info_widget,font=("consolas",12),
width=len(who_created),height=1,
fg="lightblue",bg="black",wrap=Tkinter.WORD)
text.pack()
text.insert(1.0,who_created)
info_linky_image = Tkinter.PhotoImage(file="mdls/title_demo_image.gif")
info_label = Tkinter.Label(info_widget,image=info_linky_image)
info_label.pack(side=Tkinter.TOP)
tkMessageBox.showinfo(message="Производим велосипеды уже три года")
info_widget.mainloop()
def change_image(delta):
global current_image,current_text,image_list,text_list
current_image += delta
current_text += delta
image = Image.open(image_list[current_image])
photo = ImageTk.PhotoImage(image)
textf = Tkinter.Text(root_text)#,font=("times",14))
textf.insert(Tkinter.END, open("text/txt"+str(current_image)+".txt").read())
image_label['text'] = image_list[current_image]
image_label['image'] = photo
image_label.photo = photo
#Область изображений#
image_label = Tkinter.Label(root_image, compound=Tkinter.TOP)
image_label.pack()
#Область текста#
text_label = Tkinter.Text(root_text)
text_label.pack(side=Tkinter.TOP)
#text_label.insert(1.0,sorted(os.listdir("images/")))
#Описание действий кнопок#
Tkinter.Button(buttons_frame, text="Назад",relief=Tkinter.GROOVE,
command=lambda: change_image(-1)).pack(side=Tkinter.LEFT)
Tkinter.Button(buttons_frame,relief=Tkinter.GROOVE,
text="Вперёд", command=lambda: change_image(+1)).pack(side=Tkinter.LEFT)
Tkinter.Button(buttons_frame, text="Выход",relief=Tkinter.GROOVE,
command=root_image.destroy).pack(side=Tkinter.LEFT)
Tkinter.Button(buttons_frame, text="Информация",relief=Tkinter.GROOVE,
command=program_information).pack()
#Завершение программы#
change_image(0)
root_text.mainloop()
root_image.mainloop()
Источник: Stack Overflow на русском