0

透明な画像をロードするとき:

def load_image(path):
    img = Image.open(path)
    return ImageTk.PhotoImage(img)

class Home_Screen(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.home = Tk()
        self.home.resizable(width = False,height = False)
        self.home.geometry("700x500+300+100")
        self.start()

    def run(self):
        self.images()
        Label(self.home, image = self.background).pack() # Put it in the display window
        button_instructions = Label(self.home,image = self.b_instructions).place(x = 300,y = 200)
        self.home.mainloop()

    def images(self):
        self.background = load_image("Images/night-sky.jpg")
        self.b_instructions = load_image("button_instructions.png")

    def start_game(self):
        self.home.destroy()

Home = Home_Screen()

白い枠で囲まれた画像が表示されます。元の透明度が保持されなかった理由を誰かが知っていますか?もしそうなら、あなたは解決策を提供してください。

エラーの画像

4

1 に答える 1

0

Labelウィジェットの代わりにCanvasを使用してください。表示されるのはウィジェットの背景であるため、透明度が失われることはありません。

def run(self):
    img_sky = ImageTk.PhotoImage(file="Images/night-sky.jpg")
    img_button = ImageTk.PhotoImage(file="button_instructions.png")
    self.canvas = Canvas(self.home, width=700, height=500)
    self.canvas.create_image(0, 0, image=img_sky)
    self.canvas.create_image(300, 200, image=img_button)
    self.canvas.pack()
    self.home.mainloop()
于 2013-03-26T02:14:05.933 に答える