I made a table using a frame and multiple labels and was wondering if it was possible to add a vertical scrollbar to the table so i can view more cells? And if so, is it possible to simplify the code for the table using a for loop?
Also im going to connect the table to a database to display some stuff if that information is relevant
Heres my code if needed:
from tkinter import *
multiQ = Tk()
multiQ.title("Multiple-Choice Question")
multiQ.resizable(0,0)
header = LabelFrame(multiQ, bg="white")
content = LabelFrame(multiQ, bg="white")
header.columnconfigure(0, weight=1) # Forces column to expand to fill all available space
homeButton=Button(content,width=50,height=50)
try:
homeIcon=PhotoImage(file="yes.png")
homeButton.config(image=homeIcon)
homeButton.image = homeIcon
except TclError:
print("Home")
homeButton.grid(row=0, sticky="w", padx=2, pady=2)
tableFrame = Frame(content, width=800, height=500, bg="black")
tableFrame.grid(row=1)
# allow the column inside the entryFrame to grow
tableFrame.columnconfigure(0, weight=10)
# By default the frame will shrink to whatever is inside of it and
tableFrame.grid_propagate(False)
column1= Label(tableFrame, font=("Ariel", 22, "bold"), text="Quiz", bg="#12a8e3", fg="white")
column1.grid(row=0, column=0, ipadx=99, sticky="w") #each cell width will be 264 and have a size 2 gap between horizontally adjacent cells
column1= Label(tableFrame, font=("Ariel", 22, "bold"), text="Mark", bg="#12a8e3", fg="white")
column1.grid(row=0, column=1, ipadx=99, padx=3)
column1= Label(tableFrame, font=("Ariel", 22, "bold"), text="Date", bg="#12a8e3", fg="white")
column1.grid(row=0, column=2, ipadx=99, sticky="e")
cellRow1 = Label(tableFrame, bg="white")
cellRow1.grid(row=1, column=0, ipadx=130, ipady=30, sticky="w")
cellRow1 = Label(tableFrame, bg="white")
cellRow1.grid(row=1, column=1, ipadx=133, ipady=30, padx=3)
cellRow1 = Label(tableFrame, bg="white")
cellRow1.grid(row=1, column=2, ipadx=130, ipady=30, sticky="e")
cellRow2 = Label(tableFrame, bg="white")
cellRow2.grid(row=2, column=0, ipadx=130, ipady=30, sticky="w")
cellRow2 = Label(tableFrame, bg="white")
cellRow2.grid(row=2, column=1, ipadx=133, ipady=30, padx=3)
cellRow2 = Label(tableFrame, bg="white")
cellRow2.grid(row=2, column=2, ipadx=130, ipady=30, sticky="e")
cellRow3 = Label(tableFrame, bg="white")
cellRow3.grid(row=3, column=0, ipadx=130, ipady=30, sticky="w")
cellRow3 = Label(tableFrame, bg="white")
cellRow3.grid(row=3, column=1, ipadx=133, ipady=30, padx=3)
cellRow3 = Label(tableFrame, bg="white")
cellRow3.grid(row=3, column=2, ipadx=130, ipady=30, sticky="e")
cellRow4 = Label(tableFrame, bg="white")
cellRow4.grid(row=4, column=0, ipadx=130, ipady=30, sticky="w")
cellRow4 = Label(tableFrame, bg="white")
cellRow4.grid(row=4, column=1, ipadx=133, ipady=30, padx=3)
cellRow4 = Label(tableFrame, bg="white")
cellRow4.grid(row=4, column=2, ipadx=130, ipady=30, sticky="e")
cellRow5 = Label(tableFrame, bg="white")
cellRow5.grid(row=5, column=0, ipadx=130, ipady=30, sticky="w")
cellRow5 = Label(tableFrame, bg="white")
cellRow5.grid(row=5, column=1, ipadx=133, ipady=30, padx=3)
cellRow5 = Label(tableFrame, bg="white")
cellRow5.grid(row=5, column=2, ipadx=130, ipady=30, sticky="e")
cellRow6 = Label(tableFrame, bg="white")
cellRow6.grid(row=6, column=0, ipadx=130, ipady=30, sticky="w")
cellRow6 = Label(tableFrame, bg="white")
cellRow6.grid(row=6, column=1, ipadx=133, ipady=30, padx=3)
cellRow6 = Label(tableFrame, bg="white")
cellRow6.grid(row=6, column=2, ipadx=130, ipady=30, sticky="e")
suggestionBox = Button(content, borderwidth=1, font=("Ariel", 22, "bold"), text="Based off your previous results, you could focus on:", bg="white", fg="black", relief="solid")
suggestionBox.grid(row=2, ipady=25, ipadx=70, pady=20)
header.grid(row=0, sticky='NSEW')
content.grid(row=1, sticky='NSEW')
multiQ.mainloop()