Задать вопрос
@paullmm

Как создать шахматную доску в tkinter, используя create_image?

Пытаюсь создать в игре шахматную доску из уже готового изображения, используя метод canvas create_image, но ничего не получается. Изображение приложил. Как я могу это реализовать? Может есть какие-то другие методы?

from tkinter import *
import time
class Game:
    def __init__(self):
        self.tk = Tk()
        self.tk.title("Стикмен")
        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.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.running == True:

    def mainloop(self):
        while 1:
            if self.running == True:
            self.tk.update_idletasks()
            self.tk.update()
            time.sleep(0.01)

g = Game()
g.mainloop()


678df0adc09e3261661883.gif
  • Вопрос задан
  • 68 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
ничего не получается

Не получаться может очень по разному. Какие симптомы?
Ну и по коду много вопросов...
class Game:
    def __init__(self):
        self.tk = Tk()
        ...
        self.running == True:  # <-- это вообще некорректный синтаксис, программа даже не запустится с таким

    def mainloop(self):  # зачем вообще этот метод? чем self.tk.mainloop() не угодил?
        while 1:  # почему вечный цикл? Зачем тогда self.running?
            if self.running == True:  # незачем. достаточно просто if self.running: 
            self.tk.update_idletasks()  # где отступы? непонятно, где заканчивается if. Тоже не запустится.
            self.tk.update()
            time.sleep(0.01)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы