簡體   English   中英

為什么我的畫布和/或照片圖像不顯示?

[英]Why is my canvas and/or my photoimage not displaying?

我不知道為什么我的畫布沒有顯示。 有一個對它的引用self._screen ,它正在pack ,但根本不顯示。 我想念什么?

class Map(Frame):

    def __init__(self, size):

        Frame.__init__(self)
        self.pack()

        #images
        self.spriteDimension = 20
        self.img1 = PhotoImage(file="Terrain1.gif")
        self.img2 = PhotoImage(file="Terrain2.gif")

        #grid
        self._mapSize = size
        # self._grid = self.randomize()

        #canvas
        canvas_dimension = self._mapSize * self.spriteDimension

        self._screen = Canvas(self, width=canvas_dimension, height=canvas_dimension)
        self._screen.pack()

        self.test()

    def test(self):
        print("in here")
        self._screen.create_image((50,50), anchor = NW, image = self.img1)
        print("out here")

def main():

    m =Map(20);
    m.mainloop(20);

從我所見,您有一些問題。 與其他編程語言不同,您不使用; 在一行代碼的末尾。 您無需將m = Map(20)root.mainloop()放在函數中。 您還需要定義一個tkinter窗口,因此將root = Tk()添加到程序的開頭。 請看下面的代碼,如果您不懂,請告訴我。

from tkinter import *

root = Tk()

class Map(Frame):

    def __init__(self, size):

        Frame.__init__(self)
        self.pack()

        self.spriteDimension = 20
        self.img1 = PhotoImage(file="Terrain1.gif")
        self.img2 = PhotoImage(file="Terrain2.gif")

        self._mapSize = size

        canvas_dimension = self._mapSize * self.spriteDimension

        self._screen = Canvas(self, width=canvas_dimension, height=canvas_dimension)
        self._screen.pack()

        self.test()

    def test(self):
        print("in here")
        self._screen.create_image((50,50), anchor = NW, image = self.img1)
        print("out here")

m = Map(20)
root.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM