2017-04-19 53 views
-2

這是我做的代碼:它是會說這是JS,但它的Python不打印什麼,我需要它太(Python)的

from tkinter import * 
 
import random 
 
import time 
 

 
class Game: 
 
    def __init__(self): 
 
     self.tk = Tk() 
 
     self.tk.title("Mr. Stick Man Races for the Exit") 
 
     self.tk.resizable(0, 0) 
 
     self.tk.wm_attributes("-topmost", 1) 
 
     self.canvas = Canvas(self.tk, width=500, height=500, highlightthickness=0) 
 
     self.canvas.pack() 
 
     self.tk.update() 
 
     self.canvas_height = 500 
 
     self.canvas_width = 500 
 
     self.bg = PhotoImage(file = "background.gif") 
 
     w = self.bg.width() 
 
     h = self.bg.height() 
 
     for x in range(0, 5): 
 
      for y in range(0, 5): 
 
       self.canvas.create_image(x * w, y * h, image=self.bg, anchor='nw') 
 
     self.sprites = [] 
 
     self.running = True 
 

 
    def mainloop(self): 
 
     while 1: 
 
      if self.running == True: 
 
       for sprite in self.sprites: 
 
        sprite.move() 
 
       self.tk.update_idletasks() 
 
       self.tk.update() 
 
       time.sleep(0.01) 
 

 
g = Game() 
 
g.mainloop()

,我得到的是錯誤:

Traceback (most recent call last): 
 
    File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\stickfiguregame.py", line 34, in <module> 
 
    g = Game() 
 
    File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\stickfiguregame.py", line 16, in __init__ 
 
    self.bg = PhotoImage(file = "background.gif") 
 
    File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3539, in __init__ 
 
    Image.__init__(self, 'photo', name, cnf, master, **kw) 
 
    File "C:\Users\USER\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 3495, in __init__ 
 
    self.tk.call(('image', 'create', imgtype, name,) + options) 
 
_tkinter.TclError: couldn't open "background.gif": no such file or directory

我有一張名爲background的圖片文件,它是.gif。 爲什麼它不起作用? 僅供參考我正在使用Python 3.6.1

+0

是你的圖像存儲在你的腳本相同的目錄? – DevB2F

+0

我是一個相對較新的Python初學者,所以你是什麼意思? –

+0

我的意思是你必須確保python文件與你的gif圖像位於同一個文件夾中。例如,如果您的python文件在您的桌面上,請確保gif圖像也位於桌面上。 – DevB2F

回答

0

您的腳本無法找到圖片文件。嘗試用完整路徑替換"background.gif",或將其複製到與腳本相同的目錄。

-1

把這些進口在頂部:

from PIL import Image 
import ImageTk 

和替換這樣的:

self.bg = PhotoImage(file = "background.gif") 

與此:

self.bg = ImageTk.PhotoImage(Image.open('background.gif')) 

如果還是不行,請嘗試:

self.bg = PhotoImage(Image.open('background.gif')) 
+0

爲什麼你需要這樣做? tkinter支持.gif格式的圖像http://effbot.org/tkinterbook/photoimage.htm和OP是使用python 3,所以你將需要使用Pillow fork而不是PIL。錯誤指出它找不到該文件,而不是不支持的格式。 – abccd

+0

錯誤清楚地表明它無法在給定路徑中找到該文件。你的解決方案使用相同的路徑,所以它會產生相同的錯誤。 –

相關問題