Tkinter показывает изображения - PullRequest
0 голосов
/ 28 декабря 2011

Вот код, который я пытаюсь отобразить изображения.Ну ... во-первых, на экране должно быть 4 карты;однако их всего 2. Я понятия не имею, почему это происходит.Мне действительно нужна помощь.

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)

Ответы [ 2 ]

4 голосов
/ 28 декабря 2011

ваши первые 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 строки кода для последних 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 в качестве метки.
вам нужно изменить 2 строки alst на что-то вроде:

self._dealerCardImage1 = PhotoImage(file=str(blackjack._dealer._cards[1].fileName))
self._dealerCardLabel1 = Label(self, image = self._dealerCardImage1)
self._dealerCardLabel1.grid(row=0, column=3)
1 голос
/ 02 августа 2013

В вопросе к другому ответу вы спросили, можете ли вы создавать изображения в цикле.Ничто не мешает вам сделать это.

Например, если вы хотите создать 4 карты игрока, вы можете сделать что-то вроде:

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...