contactme8359
contactme8359

Reputation: 83

Tkinter formatting rows

I am using Tkinter and have a grid that is successfully outputting the first 2 rows as intended. Now, every time I run the program I want to display a variable number of rows (always after those first 2 rows) starting at row = 2, column = 0. So if there are 4 items to display, all would be shown on the left side one under the other.

Currently, the program only works if there is only 1 item to display. Then it will output properly. If there are more products, then only the last in the list will display.

I tried to do something like .grid(row=2+product), but then I get an error - TypeError: unsupported operand type(s) for +: 'int' and 'dict'.

How can I handle using a variable number of products to create a variable number of labels and display all of them properly?

from tkinter import * 
window=Tk()
for product in productList:
    productLabel = Label(
        window,
        bg='#DC143C'
    ).grid(row=2, column=0)
window.mainloop()

Upvotes: 0

Views: 157

Answers (1)

acw1668
acw1668

Reputation: 46669

You can use enumerate() function to get a index and add it to the row option:

for i, product in enumerate(productList):
    productLabel = Label(
        window,
        text=product,
        bg='#DC143C'
    ).grid(row=2+i, column=0)

Upvotes: 2

Related Questions