Выравнивание кнопок и меток с помощью tkinter - PullRequest
1 голос
/ 17 июня 2019

Я создаю программу для отображения пользовательских данных в графическом интерфейсе из игры под названием 'osu!' для практики создания графических интерфейсов и доступа к API (и обработки данных между базами данных и модулями, но здесь это не актуально).

У меня есть цикл для размещения кнопки «Назад» в верхнем левом углу всех фреймов, которые не являются меню.Эти кнопки расположены в столбце 0 и строке 0.

Теперь, когда я начал заполнять содержимое фреймов, я заметил, что ширина столбцов равна ширине самой широкой строки,проблема в том, что в столбце 0 все, что делает столбец шире, чем кнопка, перемещается влево.

По сути, я спрашиваю, как обосновать кнопку в этом столбце.

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

Вот что я смотрю:
Here's what I'm looking at

Вот код для создания кнопок «назад»:

    self.backButtons = {}
    for frame in self.frames:
        if frame != 'Menu':
            self.backButtons[frame] = tk.Button(self.frames[frame], command = lambda: self.raiseFrame('Menu'), text = '< - - -', bg='black', fg = 'white', width=20, height=5)
            self.backButtons[frame].grid(row = 0, column = 0)

И вот где сделаны ярлыки:

self.tableColumns = {
        'Username':self.handle,
        'Performace Points':'{0}pp'.format(round(float(self.stats['pp_raw']),2)),
        'Global Rank':'#{0}'.format(self.stats['pp_rank']),
        'Country Rank':'#{0}'.format(self.stats['pp_country_rank']),
        'Accuracy':'{0}%'.format(round(float(self.stats['accuracy']),2),'%'),
        'Highest PP Play':'{0}pp'.format(round(float(self.topPlay),2)),
        'Playcount':self.stats['playcount'],
        'Time Since Joined':secondConversion(self.stats['join_date'])}

    index = 0
    for i in self.tableColumns:

        self.label = tk.Label(self.statFrame, text = ('{0}: {1}'.format(i, self.tableColumns[i])), fg = 'white', bg = 'gray', font=("Verdana", 16))
        self.label.grid(row = index+3,column = 0)
        index += 1

Я пытался добавить justify = 'left' и anchor = 'w' к линии создания кнопок и меток, что обычно предлагается, но это не сработало.Возможно я добавляю это в неправильном месте или делаю это неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...