根据随机数动态添加图像

时间:2013-08-20 17:52:01

标签: python

我借助图像为我4岁的女儿做一个简单的数学学习计划。 根据我们可以调用X的随机数,for循环将运行X次并打印图像X次。图像将通过随机数从列表中选择,我们也可以调用Y.

如果X为2,则使用for循环将图像Y打印到屏幕2次。

问题是我不知道该怎么做。 :P 如果有人能帮助我,我将不胜感激!我正在使用python 3.2和Tkinter。

以下是我的图片列表的示例代码。

    self.imageListRegular = []
    self.imageListRegular.append(ImageTk.PhotoImage(file="Bilder/Bird-icon.png"))
    self.imageListRegular.append(ImageTk.PhotoImage(file="Bilder/elephant-icon.png"))      
    self.imageListRegular.append(ImageTk.PhotoImage(file="Bilder/fish-icon.png"))
    self.imageListRegular.append(ImageTk.PhotoImage(file="Bilder/ladybird-icon.png"))
    self.imageListRegular.append(ImageTk.PhotoImage(file="Bilder/zebra-icon.png"))

真诚地,罗伯特

1 个答案:

答案 0 :(得分:1)

使用python random模块

import random
image = random.choice(self.imageListRegular) #this is your 'Y' variable
times = random.randint(1, 4) #this is your 'X' variable

然后你做循环,我想这看起来像这样(我没有Tkinter,所以我不能测试代码。这来自样本here):

import Tkinter 
root = Tkinter.Tk() 
for i in xrange(times):
    Tkinter.Label(root, image=image).pack() 
root.mainloop() # Start the GUI

random.choice会返回给定序列中的随机元素,因此random.choice(["apples", "bananas", "oranges"])将返回" apples"," bananas"或" oranges& #34;

random.randint(low, high)将返回低和高之间的随机整数,包括低和高。因此,如果您希望在1到4次之间显示图像,random.randint(1, 4)就可以了。