0

わかりました。生成ボタンをクリックすると、Tkinter キャンバスでランダムな色のボールを 10 個生成しようとしています。プログラムは機能し、ボールのランダムな色の選択は機能しますが、一度に生成されるボールは 1 つだけです。ボタンをクリックするたびにボールがランダムに動きますが、一度に 10 個のボールが 10 個のランダムな位置にあるだけです。Linux ボックスで Python 3.4 を使用しています。これは私が持っているコードです:

from tkinter import *
import random # to generate random balls

colors = ["red", "blue", "purple", "green", "violet", "black"]

class RandomBalls:
    """
    Boilerplate code for window in Tkinter
    window = Tk()
    window.title("Random title")
    window.mainloop()
    """


    def __init__(self):
        """
        Initialize the window and add two frames, one with button, and another one with
        canvas
        :return:
        """

        window = Tk()
        window.title("Random balls")

        # A canvas frame
        frame1 = Frame(window)
        frame1.pack()
        self.canvas = Canvas(frame1, width = 200, height = 300, bg = "white")
        self.canvas.pack()


        # A button frame
        frame2 = Frame(window)
        frame2.pack()
        displayBtn = Button(frame2, text = "Display", command = self.display)
        displayBtn.pack()

        window.mainloop()

    def display(self):
        for i in range(0, 10):
            self.canvas.delete("circle")  # delete references to the old circle
            self.x1 = random.randrange(150)
            self.y1 = random.randrange(200)
            self.x2 = self.x1 + 5
            self.y2 = self.y1 + 5
            self.coords = self.x1, self.y1, self.x2, self.y2
            self.canvas.create_oval(self.coords, fill = random.choice(colors), tags = "circle")
        self.canvas.update()


RandomBalls()
4

1 に答える 1