tkinter 캔버스 옵션을 사용하여 이미지를 파이썬으로 표시하려고합니다. 그러나 아래에있는 클래스에서 입력하면 오류가 발생하지 않지만 내 이미지는 표시되지 않습니다. 버튼은 올바르게 표시됩니다. 또한 클래스에서이 이미지를 생성하기위한 코드를 취하면 제대로 작동합니다. 나는 그 문제가 무엇인지 알아낼 수 없다.tkinter 캔버스 이미지가 클래스에 표시되지 않습니다.
import Tkinter as tk
from Tkinter import *
class Board(tk.Frame):
def __init__(self,parent):
frame = Frame(parent)
frame.pack()
tk.Frame.__init__(self,parent)
frame2 = Frame(frame)
frame2.pack()
c=Canvas(frame2)
c.pack(expand=YES,fill=BOTH)
background=PhotoImage(file='Board.gif')
c.create_image(100,100,image=background,anchor='nw')
button = Button(frame, text="Next turn", command=self.next_turn)
button.pack()
button = Button(frame, text="Roll the dice", command=self.roll)
button.pack()
....
root = Tk()
board = Board(root)
board.pack()
root.mainloop()
가 왜 tk'과''Tkinter를 가져 오기 *에서와 같은 모두'수입은 Tkinter을하고있다 : 이것은 단지 예 (당신이 대신
c.background
의self.background
을 사용할 수 있습니다)인가? –선생님이 모든 것을 가져 왔는지 확인하기 위해 선생님에게 그렇게하라고했습니다. 나는 그것이 nessecary가 아니라는 것을 안다. 그러나 지금 tk를 가지고있는 몇 개의 선이있다. 무엇인가. 그리고 만일 내가 단지 tk를 삭제하면. 내 프로그램 괴물. 그게 문제가 될 수 있다고 생각하니? – konovalov100
그 이유는 아마도'tk.Frame .__ init __ (self, parent)'와'class Board (tk.Frame) '때문일 것입니다. '__init__' 메쏘드를 직접 호출하는 이유는 모르겠지만 그것을'Frame .__ init __ (self, parent)'와'class Board (Frame)'로 변경할 수 있습니다. 나는 당신이 그것에 대한 참조를 유지하고 있지 않기 때문에 Frame이 어떤 목적을 위해 사용되는지를 보지 못합니다. –