Add scrollbar to interface
This commit is contained in:
parent
f06a6077f9
commit
fcd014bad3
|
@ -1,4 +1,4 @@
|
|||
from tkinter import Tk
|
||||
from tkinter import Tk, VERTICAL, LEFT, RIGHT, Y, BOTH
|
||||
from tkinter import ttk
|
||||
|
||||
from instance import Instance, gen_function_for_instance
|
||||
|
@ -7,14 +7,30 @@ from settings import MainSettings, SortType
|
|||
|
||||
def start_ui(instances: [Instance], settings):
|
||||
root = Tk()
|
||||
frame = ttk.Frame(root, padding=50)
|
||||
frame.grid()
|
||||
ttk.Label(frame, text="Available Databases").grid(column=0, row=0)
|
||||
|
||||
# Alphanumeric sorting
|
||||
if MainSettings.Sort == SortType.ALPHA:
|
||||
instances = list(sorted(instances))
|
||||
|
||||
canvas = ttk.Canvas(root)
|
||||
scrollbar = ttk.Scrollbar(root, orient=VERTICAL, command=canvas.yview)
|
||||
frame = ttk.Frame(canvas)
|
||||
|
||||
frame.bind(
|
||||
"<Configure>",
|
||||
lambda e: canvas.configure(
|
||||
scrollregion=canvas.bbox("all")
|
||||
)
|
||||
)
|
||||
|
||||
canvas.create_window((0, 0), window=frame, anchor="nw")
|
||||
canvas.configure(yscrollcommand=scrollbar.set)
|
||||
|
||||
canvas.pack(side=LEFT, fill=BOTH, expand=True)
|
||||
scrollbar.pack(side=RIGHT, fill=Y)
|
||||
|
||||
ttk.Label(frame, text="Available Databases").grid(column=0, row=0)
|
||||
|
||||
for row, instance in enumerate(instances):
|
||||
if instance.disable and not MainSettings.ShowAll:
|
||||
continue
|
||||
|
|
Loading…
Reference in New Issue