2011-12-28 3 views
0

다음은 이미지를 표시하려고 시도하는 코드입니다. 음 .. 우선 화면에 4 장의 카드가 있어야합니다. 그러나, 단지 2가 있습니다. 나는 이것이 왜 일어나고 있는지 전혀 모른다. 정말 도움이 필요해. 처음 두 카드의 코드이미지를 표시하는 Tkinter

def __init__(self): 
    Frame.__init__(self) 
    self.master.title("Black Jack") 
    blackjack = Blackjack() 
    self.grid() 

    self._playerCardImage = PhotoImage(file=str(blackjack._player._cards[0].fileName)) 
    self._playerCardLabel = Label(self, image = self._playerCardImage) 
    self._playerCardLabel.grid(row=0, column=0) 


    self._playerCardImage1 = PhotoImage(file=str(blackjack._player._cards[1].fileName)) 
    self._playerCardLabel1 = Label(self, image = self._playerCardImage1) 
    self._playerCardLabel1.grid(row=0, column=1) 

    self._dealerCardImage = PhotoImage(file=str(blackjack._dealer._cards[0].fileName)) 
    self._dealerCardImage = Label(self, image = self._dealerCardImage) 
    self._dealerCardImage.grid(row=0, column=2) 

    self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName)) 
    self._dealerCardImage1 = Label(self, image = self._dealerCardImage1) 
    self._dealerCardImage1.grid(row=0, column=3) 

답변

4

첫 2 개 라인 : 최근 2 개 카드 코드의

self._playerCardImage = PhotoImage(file=str(blackjack._player._cards[0].fileName)) 
self._playerCardLabel = Label(self, image = self._playerCardImage) 
self._playerCardLabel.grid(row=0, column=0) 

마지막 2 개 라인 :

self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName)) 
self._dealerCardImage1 = Label(self, image = self._dealerCardImage1) 
self._dealerCardImage1.grid(row=0, column=3) 

당신이 _dealerCardImage1을 다시 초기화된다 레이블로.
당신은 같은에 alst 2 개 라인을 변경해야합니다 :

self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName)) 
self._dealerCardLabel1 = Label(self, image = self._dealerCardImage1) 
self._dealerCardLabel1.grid(row=0, column=3) 
+0

이크 아 .. 내 나쁜 : 당신이 4 개 선수 카드를 만들려는 경우

예를 들어, 당신은 뭔가를 할 수 있습니다. 부주의 한 실수! 고맙습니다! – user1047092

+2

@ user1047092 문제 없음 :) 답변을 표시하는 것을 잊지 마세요, 사람들이 더 많이 도와주고 싶습니다. – Serdalis

+0

다른 질문이 있습니다. 지금은 4 개의 이미지를 표시하려고합니다. 위와 같이 반복적 인 코드를 작성하지 않고도 이미지를 표시 할 수있는 방법이 있습니까? – user1047092

1

을 당신이 루프에서 이미지를 만들 수 있다면 당신은 질문 다른 대답 질문에. 당신이 그렇게하는 것을 막을 수있는 방법은 없습니다.

def __init__(self): 
    Frame.__init__(self) 
    self.master.title("Black Jack") 
    blackjack = Blackjack() 
    self.grid() 

    self._images = [] 
    self._labels = [] 
    for column in range(4): 
     image = PhotoImage(file=str(blackjack._player._cards[column].fileName)) 
     label = Label(self, image = image) 
     label.grid(row=0, column=column) 

     self._images.append(image) 
     self._labels.append(label) 
관련 문제