Tkinter проблема со структурой таблицы в табличке tkinter - PullRequest
0 голосов
/ 03 февраля 2019

В настоящее время я пытаюсь напечатать таблицу данных, собранных из базы данных, в графический интерфейс пользователя в tkinter, сейчас я использую tabulate, который отлично работает в консоли, но как только я пытаюсь установить таблицу как текстпри печати в качестве метки таблица перекошена, а значения не выровнены.Я все еще новичок в 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 / folder / 59 / 89rdtwpd4vnf6pv7pbd3l60m0000gn / T / com.apple.Safari / WebKitDropDestination-rwh55dGn / Screen% 20Shot% 202019-02-03% 20at% 2011.49.29% 20 PM.png

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

! File: ///var/folders/59/89rdtwpd4vnf6pv7pbd3l60m0000gn/T/com.apple.Safari/WebKitDropDestination-tZziKT9D/Screen%20Shot%202019-02-03%20at%2011.47p020P1008 *

https://i.stack.imgur.com/bgG4C.png

1 Ответ

0 голосов
/ 04 февраля 2019

Я бы настоятельно рекомендовал создать сетку из 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])
...