如何循环这种幻灯片放映功能?

2024-09-27 23:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个which函数,当我点击窗口时,它会遍历三个图像,但我不知道该怎么做,这样在最后一个图像之后,它会返回到第一个图像并重复。我想我可以做一个循环,但它只是停留在第一个图像。你知道吗

from cImage import *
def drawstuff():
    myImWin = ImageWin('\Python34\images\picture0.gif',300,300)
    a = myImWin.getMouse()
    if a[0] < 300:
        Im = FileImage('\Python34\images\picture0.gif')
        Im.draw(myImWin)
    if a[0] < 300:
        Im = FileImage('\Python34\images\picture1.gif')
        Im.draw(myImWin)
    a = myImWin.getMouse()
    if a[0] < 300:
        Im = FileImage('\Python34\images\picture2.gif')
        Im.draw(myImWin)

Tags: 函数from图像whichifgifimagesdraw
1条回答
网友
1楼 · 发布于 2024-09-27 23:23:07

我建议您将图像文件名收集到一个列表中,并在每次在图像区域内单击鼠标时循环索引:

slides = ['\Python34\images\picture0.gif',
          '\Python34\images\picture1.gif',
          '\Python34\images\picture2.gif']
n_slides = len(slides)

def drawstuff():
    myImWin = ImageWin('\Python34\images\picture0.gif', 300, 300)
    slide_no = 0
    while True:
        cursor = myImWin.getMouse()
        if cursor[0] < 300:
            Im = FileImage(slides[slide_no])
            Im.draw(myImWin)
            slide_no = (slide_no + 1) % n_slides  # cyclic
        else:
             break

现在,这将永远循环,直到您单击图像外部。由于这个建议的主要目的是向您展示如何循环遍历索引,我想指出的是,这种“thight”循环不是可行的方法。即使在用户什么都不做的时候,它也会消耗大量的CPU周期。您需要考虑一种运行循环事件驱动的方法。你知道吗

相关问题 更多 >

    热门问题