我正在尝试用Python制作随机幻灯片
当前工作代码:
import tkinter as tk
from itertools import cycle
from PIL import ImageTk, Image
with open('list.txt', 'r') as f:
lines = f.read().strip('[]')
images = [i.strip("\" ") for i in lines.split(',')]
photos = cycle(ImageTk.PhotoImage(Image.open(image)) for image in images)
def slideShow():
img = next(photos)
displayCanvas.config(image=img)
root.after(1200, slideShow)
root = tk.Tk()
root.overrideredirect(True)
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.geometry('%dx%d' % (1920, 1280))
displayCanvas = tk.Label(root)
displayCanvas.pack()
root.after(1000, lambda: slideShow())
root.mainloop()
我尝试通过将 img = next(photos)
更改为 img = random.choice(photos)
对其进行随机化
我收到错误NameError:名称'random'未定义
完全随机代码:
import tkinter as tk
from itertools import cycle
from PIL import ImageTk, Image
import random
with open('list.txt', 'r') as f:
lines = f.read().strip('[]')
images = [i.strip("\" ") for i in lines.split(',')]
photos = cycle(ImageTk.PhotoImage(Image.open(image)) for image in images)
def slideShow():
img = random.choice(photos)
displayCanvas.config(image=img)
root.after(1200, slideShow)
root = tk.Tk()
root.overrideredirect(True)
width = root.winfo_screenwidth()
height = root.winfo_screenwidth()
root.geometry('%dx%d' % (1920, 1280))
displayCanvas = tk.Label(root)
displayCanvas.pack()
root.after(1000, lambda: slideShow())
root.mainloop()
我应该如何正确地将幻灯片转换为随机幻灯片?
最佳答案
我只会使用 random 中的 shuffle()
,它是 Python 标准库的一部分。
import random
random.shuffle(images)
请记住,随机播放就地进行并返回None
关于python - 如何用Python制作随机照片幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59223959/