Aug-27-2023, 05:28 AM
Hi everyone
I am using customtkinter to make some comboboxes
Basically I have a list of Groups, which have their own corresponding models and buckets available
see the dictionaries below please
models_data = {
"Caterpillar LHD models": {
"R1300G": ["DB 3.4", "DB 2.8", "DB 2.5", "DB 3.1"],
"R1600H": ["DB 5.9", "DB 4.8", "DB 4.2", "DB 5.6"],
"R1700": ["DB 5.7", "DB 6.1", "DB 6.6", "DB 7.5", "DB 8"],
"R1700XE": ["DB 5.7", "DB 6.1", "DB 6.6", "DB 7.5"],
"R1700G": ["DB 4.6", "DB 5", "DB 6.6", "DB 5.7", "DB 7.3", "DB 8.8"],
"R2900G": ["DB 8.9", "DB 7.2", "DB 6.3", "DB 8.3"],
"R2900": ["DB 6.3", "DB 7.2", "DB 8.3", "DB 8.9"],
"R2900XE": ["DB 7.4", "DB 8.6", "DB 9.2", "DB 9.8"],
"R3000H": ["DB 10.5", "DB 8.9", "DB 9.5"]
},
"Sandvik LHD models": {
"SANDVIK LH517i": ["DB 7", "DB 7.6", "DB 8.6", "DB 9.1", "DB 8.4"],
"SANDVIK LH621i": ["DB 8.0", "DB 9.0", "DB 10.7", "DB 11.2"],
"SANDVIK LH515i": ["DB 6.3", "DB 6.8", "DB 7.5"],
"SANDVIK LH514": ["DB 6.2", "DB 7", "DB 5.4"],
"Toro™ LH625iE": ["DB 10"],
"Sandvik LH514E": ["DB 4.6", "DB 5", "DB 5.4", "DB 6.2", "DB 7"],
"Toro™ LH514BE": ["DB 4.6", "DB 5", "DB 5.4", "DB 6.2", "DB 7", "DB 7.5"],
"Sandvik LH409E": ["DB 3.8", "DB 4.3", "DB 4.6"]
},
"Epiroc LHD models": {
"Epiroc ST14 SG": ["DB 4.7", "DB 5", "DB 5.4", "DB 5.8", "DB 6.4", "DB 7.0", "DB 7.8"],
"Epiroc ST18 SG": ["DB 9.7", "DB 8.8", "DB 7.9", "DB 7.3", "DB 6.7", "DB 6.3"],
"Epiroc ST14": ["DB 4.7", "DB 5", "DB 5.4", "DB 5.8", "DB 6.4", "DB 7.0", "DB 7.8"],
"Epiroc ST18 S": ["DB 9.7", "DB 8.8", "DB 7.9", "DB 7.3", "DB 6.7", "DB 6.3"]
},
"Komatsu LHD models": {
"WX18H": ["DB 8.2", "DB 9.2", "DB 10", "DB 11.2"],
"WX22H": ["DB 10", "DB 11", "DB 12.2", "DB 13.8"]
}
So I have setup some definitions as such
def on_group_selected(col):
selected_group = group_vars[col].get()
model_dropdowns[col]['values'] = list(models_data[selected_group].keys())
model_vars[col].set("")
buckets_dropdowns[col]['values'] = []
def on_model_selected(col):
selected_group = group_vars[col].get()
selected_model = model_vars[col].get()
if selected_model != "":
bucket_values = models_data[selected_group][selected_model]
buckets_dropdowns[col]['values'] = bucket_values
I have setup the labels as such
# Group dropdown
group_var = ctk.StringVar()
group_var.set(list(models_data.keys())[col])
group_vars.append(group_var)
group_dropdown = ctk.CTkComboBox(column_frame, variable=group_var, values=list(models_data.keys()),font=("Univers-Light-Normal", 10), width=200, justify="center", command=on_model_selected)
group_dropdown.bind("<<ComboboxSelected>>", lambda event, col=col: on_group_selected(col))
group_dropdown.pack(pady=10)
# Model dropdown
model_var = ctk.StringVar()
model_var.set("Select Model")
model_vars.append(model_var)
model_dropdown = ctk.CTkComboBox(column_frame, variable=model_var, values=[], font=("Univers-Light-Normal", 10), width=200)
model_dropdown.bind("<<ComboboxSelected>>", lambda event, col=col: on_model_selected(col))
model_dropdown.pack(pady=10)
model_dropdowns.append(model_dropdown)
# Buckets dropdown
buckets_var = ctk.StringVar()
buckets_var.set("")
buckets_dropdown = ctk.CTkComboBox(column_frame, variable=buckets_var, values=[],font=("Univers-Light-Normal", 10) ,width=80)
buckets_dropdown.pack(pady=10)
buckets_dropdowns.append(buckets_dropdown)
My Group drop down works, the model dropdown and buckets don't work, essentially no list to select from
Can someone please help me out?
Thank you!
I am using customtkinter to make some comboboxes
Basically I have a list of Groups, which have their own corresponding models and buckets available
see the dictionaries below please
models_data = {
"Caterpillar LHD models": {
"R1300G": ["DB 3.4", "DB 2.8", "DB 2.5", "DB 3.1"],
"R1600H": ["DB 5.9", "DB 4.8", "DB 4.2", "DB 5.6"],
"R1700": ["DB 5.7", "DB 6.1", "DB 6.6", "DB 7.5", "DB 8"],
"R1700XE": ["DB 5.7", "DB 6.1", "DB 6.6", "DB 7.5"],
"R1700G": ["DB 4.6", "DB 5", "DB 6.6", "DB 5.7", "DB 7.3", "DB 8.8"],
"R2900G": ["DB 8.9", "DB 7.2", "DB 6.3", "DB 8.3"],
"R2900": ["DB 6.3", "DB 7.2", "DB 8.3", "DB 8.9"],
"R2900XE": ["DB 7.4", "DB 8.6", "DB 9.2", "DB 9.8"],
"R3000H": ["DB 10.5", "DB 8.9", "DB 9.5"]
},
"Sandvik LHD models": {
"SANDVIK LH517i": ["DB 7", "DB 7.6", "DB 8.6", "DB 9.1", "DB 8.4"],
"SANDVIK LH621i": ["DB 8.0", "DB 9.0", "DB 10.7", "DB 11.2"],
"SANDVIK LH515i": ["DB 6.3", "DB 6.8", "DB 7.5"],
"SANDVIK LH514": ["DB 6.2", "DB 7", "DB 5.4"],
"Toro™ LH625iE": ["DB 10"],
"Sandvik LH514E": ["DB 4.6", "DB 5", "DB 5.4", "DB 6.2", "DB 7"],
"Toro™ LH514BE": ["DB 4.6", "DB 5", "DB 5.4", "DB 6.2", "DB 7", "DB 7.5"],
"Sandvik LH409E": ["DB 3.8", "DB 4.3", "DB 4.6"]
},
"Epiroc LHD models": {
"Epiroc ST14 SG": ["DB 4.7", "DB 5", "DB 5.4", "DB 5.8", "DB 6.4", "DB 7.0", "DB 7.8"],
"Epiroc ST18 SG": ["DB 9.7", "DB 8.8", "DB 7.9", "DB 7.3", "DB 6.7", "DB 6.3"],
"Epiroc ST14": ["DB 4.7", "DB 5", "DB 5.4", "DB 5.8", "DB 6.4", "DB 7.0", "DB 7.8"],
"Epiroc ST18 S": ["DB 9.7", "DB 8.8", "DB 7.9", "DB 7.3", "DB 6.7", "DB 6.3"]
},
"Komatsu LHD models": {
"WX18H": ["DB 8.2", "DB 9.2", "DB 10", "DB 11.2"],
"WX22H": ["DB 10", "DB 11", "DB 12.2", "DB 13.8"]
}
So I have setup some definitions as such
def on_group_selected(col):
selected_group = group_vars[col].get()
model_dropdowns[col]['values'] = list(models_data[selected_group].keys())
model_vars[col].set("")
buckets_dropdowns[col]['values'] = []
def on_model_selected(col):
selected_group = group_vars[col].get()
selected_model = model_vars[col].get()
if selected_model != "":
bucket_values = models_data[selected_group][selected_model]
buckets_dropdowns[col]['values'] = bucket_values
I have setup the labels as such
# Group dropdown
group_var = ctk.StringVar()
group_var.set(list(models_data.keys())[col])
group_vars.append(group_var)
group_dropdown = ctk.CTkComboBox(column_frame, variable=group_var, values=list(models_data.keys()),font=("Univers-Light-Normal", 10), width=200, justify="center", command=on_model_selected)
group_dropdown.bind("<<ComboboxSelected>>", lambda event, col=col: on_group_selected(col))
group_dropdown.pack(pady=10)
# Model dropdown
model_var = ctk.StringVar()
model_var.set("Select Model")
model_vars.append(model_var)
model_dropdown = ctk.CTkComboBox(column_frame, variable=model_var, values=[], font=("Univers-Light-Normal", 10), width=200)
model_dropdown.bind("<<ComboboxSelected>>", lambda event, col=col: on_model_selected(col))
model_dropdown.pack(pady=10)
model_dropdowns.append(model_dropdown)
# Buckets dropdown
buckets_var = ctk.StringVar()
buckets_var.set("")
buckets_dropdown = ctk.CTkComboBox(column_frame, variable=buckets_var, values=[],font=("Univers-Light-Normal", 10) ,width=80)
buckets_dropdown.pack(pady=10)
buckets_dropdowns.append(buckets_dropdown)
My Group drop down works, the model dropdown and buckets don't work, essentially no list to select from
Can someone please help me out?
Thank you!