Попытка получить несколько записей из таблицы MySQL с помощью этого кода, но в древовидном представлении отображается только последняя запись - PullRequest
0 голосов
/ 05 августа 2020
def EmployeeScreen():
        mycursor.execute("""SELECT ID, Username, Processor, MotherBoard, Memory, Storage, Graphics, PowerSupply, TowerCase, Price FROM PendingOrders""")
        results = mycursor.fetchall()
        for i in results:
                PendingOrdersTree = ttk.Treeview(Employee, selectmode = 'browse')
                PendingOrdersTree.grid(row = 3, column = 2, pady = 25, padx = 15)
                PendingOrdersTree["columns"] = ("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
                PendingOrdersTree['show'] = 'headings'
                PendingOrdersTree.column("1", width = 75, anchor = 'c')
                PendingOrdersTree.column("2", width = 75, anchor = 'c')
                PendingOrdersTree.column("3", width = 75, anchor = 'c')
                PendingOrdersTree.column("4", width = 75, anchor = 'c')
                PendingOrdersTree.column("5", width = 75, anchor = 'c')
                PendingOrdersTree.column("6", width = 75, anchor = 'c')
                PendingOrdersTree.column("7", width = 75, anchor = 'c')
                PendingOrdersTree.column("8", width = 75, anchor = 'c')
                PendingOrdersTree.column("9", width = 75, anchor = 'c')
                PendingOrdersTree.column("10", width = 75, anchor = 'c')
                PendingOrdersTree.heading("1", text = "ID")
                PendingOrdersTree.heading("2", text = "Username")
                PendingOrdersTree.heading("3", text = "CPU")
                PendingOrdersTree.heading("4", text = "Motherboard")
                PendingOrdersTree.heading("5", text = "RAM")
                PendingOrdersTree.heading("6", text = "Storage")
                PendingOrdersTree.heading("7", text = "GPU")
                PendingOrdersTree.heading("8", text = "PSU")
                PendingOrdersTree.heading("9", text = "Case")
                PendingOrdersTree.heading("10", text = "Price")
                PendingOrdersTree.insert("", 'end', text = "L1", values = (i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8], i[9]))

1 Ответ

0 голосов
/ 05 августа 2020

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

def EmployeeScreen():
    mycursor.execute("""SELECT ID, Username, Processor, MotherBoard, Memory, Storage, Graphics, PowerSupply, TowerCase, Price FROM PendingOrders""")
    results = mycursor.fetchall()
    PendingOrdersTree = ttk.Treeview(Employee, selectmode = 'browse')
    PendingOrdersTree.grid(row = 3, column = 2, pady = 25, padx = 15)
    PendingOrdersTree["columns"] = ("1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
    PendingOrdersTree['show'] = 'headings'
    PendingOrdersTree.column("1", width = 75, anchor = 'c')
    PendingOrdersTree.column("2", width = 75, anchor = 'c')
    PendingOrdersTree.column("3", width = 75, anchor = 'c')
    PendingOrdersTree.column("4", width = 75, anchor = 'c')
    PendingOrdersTree.column("5", width = 75, anchor = 'c')
    PendingOrdersTree.column("6", width = 75, anchor = 'c')
    PendingOrdersTree.column("7", width = 75, anchor = 'c')
    PendingOrdersTree.column("8", width = 75, anchor = 'c')
    PendingOrdersTree.column("9", width = 75, anchor = 'c')
    PendingOrdersTree.column("10", width = 75, anchor = 'c')
    PendingOrdersTree.heading("1", text = "ID")
    PendingOrdersTree.heading("2", text = "Username")
    PendingOrdersTree.heading("3", text = "CPU")
    PendingOrdersTree.heading("4", text = "Motherboard")
    PendingOrdersTree.heading("5", text = "RAM")
    PendingOrdersTree.heading("6", text = "Storage")
    PendingOrdersTree.heading("7", text = "GPU")
    PendingOrdersTree.heading("8", text = "PSU")
    PendingOrdersTree.heading("9", text = "Case")
    PendingOrdersTree.heading("10", text = "Price")
    for i in results:
        PendingOrdersTree.insert("", 'end', text = "L1", values = (i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8], i[9]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...