Tkinter проблема со структурой таблицы в табличке tkinter

В настоящее время я пытаюсь напечатать таблицу данных, собранных из базы данных, в графический интерфейс пользователя в tkinter, в данный момент я использую tabulate, который отлично работает в консоли, но как только я пытаюсь установить таблицу как текст как print как метка наклона таблицы и значения не выровнены. Я все еще новичок в tkinter, и поэтому мой код далеко не самый эффективный или действенный, есть идеи о том, почему это происходит или как?

        order = (key_1,name_1,price_1,quantity_1,total_1)
        table.append(order)
        count +=1
    print_table = (tabulate(table,headers=headers,tablefmt= "rst"))
    c.fetchall()
    conn.commit()
    conn.close()
    label_table = tk.Label(self,text=print_table)
    label_table.pack()

Ожидаемый результат:! File:///var/folders/59/89rdtwpd4vnf6pv7pbd3l60m0000gn/T/com.apple.Safari/WebKitDropDestination-rwh55dGn/Screen%20Shot%202019-02-03%20at%2011.49.29%20P.png

Фактический результат:

! Файл: ///var/folders/59/89rdtwpd4vnf6pv7pbd3l60m0000gn/T/com.apple.Safari/WebKitDropDestination-tZziKT9D/Screen%20Shot%202019-02-03%20at%2011.47.15%20PM.png

2 ответа

Я очень рекомендую создать сетку tk.Entry виджеты, где вы размещаете свои заголовки и значения в отдельных записях. Если вы записали tk.Entry виджеты объектов в списке вы могли бы вызывать их по отдельности за пределами цикла, если вы предпочитаете это. Вы могли бы заменить tk.Label виджет на месте tk.Entry с другими изменениями форматирования, если вы были неравнодушны к Label виджет.

tableWindow=tk.Toplevel()
tableHeaderList=["Header1","Header2","Header3","Header4"]

for i in range(height): #Rows
    for j in range(width): #Columns
        b = tk.Entry(tableWindow, text="")
        b.grid(row=i, column=j)
        if i == 0:
            b.insert(0,tableHeaderList[j])

Я предлагаю вам использовать моноширинный шрифт. Я сталкиваюсь с той же проблемой и использую шрифт Cascadia Mono, и это сработало. используйте параметрfont=("Cascadia Mono", 10)в этикетке. Надеюсь, поможет.

Другие вопросы по тегам