У меня есть 10 изображений в папке.Tkinter должен отображать эти 10 изображений (одно за другим, как слайд-шоу), а также отображать строку состояния (максимальное значение 10).Когда tkinter отображает 6-е изображение, строка дисплея должна быть под номером 6.
Ниже приведен код моего слайд-шоу изображений.
from itertools import cycle
import PIL
from PIL import Image
try:
# Python2
import Tkinter as tk
except ImportError:
# Python3
import tkinter as tk
class App(tk.Tk):
'''Tk window/label adjusts to size of image'''
def __init__(self, image_files, x, y, delay):
# the root will be self
tk.Tk.__init__(self)
# set x, y position only
self.geometry('+{}+{}'.format(x, y))
self.delay = delay
# allows repeat cycling through the pictures
# store as (img_object, img_name) tuple
self.pictures = cycle((tk.PhotoImage(file=image), image)
for image in image_files)
self.picture_display = tk.Label(self)
self.picture_display.pack()
def show_slides(self):
'''cycle through the images and show them'''
# next works with Python26 or higher
img_object, img_name = next(self.pictures)
self.picture_display.config(image=img_object)
# shows the image filename, but could be expanded
# to show an associated description of the image
self.title(img_name)
self.after(self.delay, self.show_slides)
def run(self):
self.mainloop()
# set milliseconds time between slides
delay = 1500
# get a series of gif images you have in the working folder
# or use full path, or set directory to where the images are
image_files = [
'c:/Users/CCCCC/Desktop/Slide_Farm.gif',
'c:/Users/CCCCC/Desktop/Slide_House.gif',
'c:/Users/CCCCC/Desktop/Slide_Python.gif',
'c:/Users/CCCCC/Desktop/12345.png',
'c:/Users/CCCCC/Desktop/11.png'
'c:/Users/CCCCC/Desktop/Slide_Farm1.gif',
'c:/Users/CCCCC/Desktop/Slide_House1.gif',
'c:/Users/CCCCC/Desktop/Slide_Python1.gif',
'c:/Users/CCCCC/Desktop/12.png',
'c:/Users/CCCCC/Desktop/123.png'
]
# upper left corner coordinates of app window
x = 0
y = 0
app = App(image_files, x, y, delay)
app.show_slides()
app.run()
Ниже приведен код для моей перетаскиваемой панели
from itertools import cycle
try:
# Python2
import Tkinter as tk
except ImportError:
# Python3
import tkinter as tk
class ScaleDemo(tk.Frame):
def __init__(self, parent=tk.Tk()):
tk.Frame.__init__(self, parent)
self.pack()
self.parent = parent
tk.Label(self, text="Scale/Slider").pack()
# self.var = tk.IntVar()
self.scale1 = tk.Scale(self, label='volume',
command=self.onMove,
# variable=self.var,
from_=0, to=10,
length=200, tickinterval=2,
showvalue='yes',
orient='horizontal')
self.scale1.pack()
def onMove(self, value):
""" you can use value or self.scale1.get() """
s = "moving = %s" % value
# show result in the title
self.parent.title(s)
delay = 1500
ScaleDemo().mainloop()
Я пытаюсь создать одно окно tkinter, в котором отображаются изображения и перетаскиваемая панель внизу (какфильм в медиаплеере).
Если пользователь перетаскивает полосу на 5, он должен отобразить 5-е изображение.
Любое руководство по этому вопросу приветствуется !!