Что вызывает эту белую рамку вокруг виджетов ярлыков tkinter? - PullRequest
0 голосов
/ 24 января 2019

Я создаю шахматную доску и после создания виджетов Canvas для каждой фигуры шахматной доски.Я поместил ярлыки вокруг доски, однако шоу с этой странной белой рамкой, чем я понятия не имею, как удалить.

def createGrid(self):
    colour = True
    self.grid_list = []
    for rows in range(8):
        label = Label(self.canvas, text='{}'.format(rows+1), bg='#727272', highlightthickness=0)
        label.grid(row=rows, column=0)
        row_list = []
        self.grid_list.append(row_list)
        colour = not colour
        for columns in range(8):
            label = Label(self.canvas, text='{}'.format(self.letters[columns]), bg='#727272',
                          fg='white', highlightthickness=0, height = 2)
            label.grid(row=8, column=columns+1)
            if colour:
                grid_piece = Canvas(self.canvas, width=self.size / 8, height=self.size / 8, bg=self.colour1,
                                    highlightthickness=0, highlightbackground='#727272')
                grid_piece.grid(row=rows, column=columns+1, padx = 0, pady = 0)
            else:
                grid_piece = Canvas(self.canvas, width=self.size / 8, height=self.size / 8, bg=self.colour2,
                                    highlightthickness = 0)
                grid_piece.grid(row=rows, column=columns+1)
            colour = not colour
            row_list.append(grid_piece)

Доска со странными бордюрами

1 Ответ

0 голосов
/ 24 января 2019

В вашем вопросе недостаточно кода, чтобы другие могли его запустить, поэтому я добавил свой собственный и смог воспроизвести проблему после множества проб и ошибок.Я думаю, что граница вызвана не указанием borderwidth=0, highlightthickness=0 везде, где это необходимо, поэтому я добавил его вокруг подкласса Frame и основного Canvas, который он содержит.

Вот результат:

screenshot of script running with no white border shown

А вот используемый код:

from tkinter import *


class Foo(Frame):
    def __init__(self, *args):
        super(Foo, self).__init__(*args, bg='#727272', borderwidth=0,
                                  highlightthickness=0)
        self.pack()
        self.canvas = Canvas(self, borderwidth=0, bg='#727272', highlightthickness=0)
        self.canvas.pack()
        self.letters = list('ABCDEFHI')
        self.size = 768
        self.colour1 = '#7C1900'
        self.colour2 = '#FFDFC4'

    def createGrid(self):
        colour = True
        self.grid_list = []
        for rows in range(8):
            label = Label(self.canvas, text='{}'.format(rows+1), bg='#727272',
                          highlightthickness=0)
            label.grid(row=rows, column=0)
            row_list = []
            self.grid_list.append(row_list)
            colour = not colour
            for columns in range(8):
                label = Label(self.canvas, text='{}'.format(self.letters[columns]),
                              bg='#727272', fg='white', highlightthickness=0, height=2)
                label.grid(row=8, column=columns+1)
                if colour:
                    grid_piece = Canvas(self.canvas, width=self.size / 8,
                                        height=self.size / 8, bg=self.colour1,
                                        highlightthickness=0,
                                        highlightbackground='#727272')
                    grid_piece.grid(row=rows, column=columns+1, padx=0, pady=0)
                else:
                    grid_piece = Canvas(self.canvas, width=self.size / 8,
                                        height=self.size / 8, bg=self.colour2,
                                        highlightthickness=0)
                    grid_piece.grid(row=rows, column=columns+1)
                colour = not colour
                row_list.append(grid_piece)

root = Tk()
foo = Foo()
foo.createGrid()
root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...