Задать вопрос
  • Как нарисовать несколько изображений в Python, используя tkinter?

    @thelastofme Автор вопроса
    images = [['','','','','','','','',],
            ['','','','','','','','',],
            ['','','','','','','','',],
            ['','','','','','','','',],
            ['','','','','','','','',],
            ['','','','','','','','',],
            ['','','','','','','','',],
            ['','','','','','','','',]]
    
        for i in range(8):
            for j in range(8):
                img = None
                if pieces[i][j] == 'wP':
                    img = PhotoImage(file="WhitePawn.png")
                elif pieces[i][j] == 'wK':
                    img = PhotoImage(file="WhiteKing.png")
                elif pieces[i][j] == 'wQ':
                    img = PhotoImage(file="WhiteQueen.png")
                elif pieces[i][j] == 'wR':
                    img = PhotoImage(file="WhiteRook.png")
                elif pieces[i][j] == 'wN':
                    img = PhotoImage(file="WhiteKnight.png")
                elif pieces[i][j] == 'wB':
                    img = PhotoImage(file="WhiteBishop.png") 
                elif pieces[i][j] == 'bP':
                    img = PhotoImage(file="BlackPawn.png")
                elif pieces[i][j] == 'bK':
                    img = PhotoImage(file="BlackKing.png")
                elif pieces[i][j] == 'bQ':
                    img = PhotoImage(file="BlackQueen.png")
                elif pieces[i][j] == 'bR':
                    img = PhotoImage(file="BlackRook.png")
                elif pieces[i][j] == 'bN':
                    img = PhotoImage(file="BlackKnight.png")
                elif pieces[i][j] == 'bB':
                    img = PhotoImage(file="BlackBishop.png")
                else:
                    continue
                images[i][j] = img
    
        for i in range(8):
            for j in range(8):
                x = 50 + i * 80
                y = 50 + j * 80
                canvas.create_image(x,y, anchor=NW, image=images[j][i])
        mainloop()

    Все заработало, большое спасибо!
  • Как нарисовать несколько изображений в Python, используя tkinter?

    @thelastofme Автор вопроса
    devdb,
    А чего в матрице некоторые массивы с запятой перед закрывающей скобкой, а другие - без?
    Из-за того, что легче написать '', и сделать ctrl-cvvvvvvv, чем писать '','','','','','','',''
    Да и это ни на что не влияет, потому что сама матрица, судя по отладке, читается нормально.

    И что такое anchor=NW, может anchor=tk.NW?
    NW - North West, именно так правильно, я пробовал по-другому.

    try/except подавляют исключения?
    Суть в том, что программа не выдает ошибок, а рисует шахматное поле без фигур :(
  • Как нарисовать несколько изображений в Python, используя tkinter?

    @thelastofme Автор вопроса
    P.S. mainloop() пробовал писать везде, не помогает, строчки
    elif pieces[i][j] == '':
        continue

    тоже.