Отключить некоторые опции из выпадающего списка Tkiner с условием if - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь создать простой графический интерфейс, который имеет 2 comboboxes (скажем, combo1 и combo2).

Я хочу, чтобы некоторые значения combo1 были отключены / деактивированы, когда выбраны некоторые конкретные значения combo2.

Ниже приведен пример кода:

import ttk


root=tk.Tk()
c1_val=['0','1','2','3']
c2_val=['a','b','c']

combo1=ttk.Combobox(root,values=c1_val)
combo1.set("Select No")
combo1.place(relx=0.01,rely=0.4)

combo2=ttk.Combobox(root,values=c2_val)
combo2.set("Select No")
combo2.place(relx=0.01,rely=0.5)




var1=IntVar()
check1=tk.Checkbutton(root,text="Select1", variable=var1)
check1.place(relx=0.01,rely=0.7)

var2=IntVar()
check2=tk.Checkbutton(root,text="Select2", variable=var2)
check2.place(relx=0.4,rely=0.7)



root.mainloop()

В приведенном выше сценарии мне нужны значения combo1 = ['0','1'], если combo2= ['a'].

Какую функцию я могу здесь выполнить для достижения этого?

1 Ответ

1 голос
/ 23 сентября 2019

Ниже приведен пример для set значения Combobox:

import tkinter as tk
from tkinter import ttk

def setValue(event):
     print(combo.set('January'))

app = tk.Tk() 
app.geometry('400x100')

labelTop = tk.Label(app,
                    text = "Choose your favourite month")
labelTop.grid(column=0, row=0)

combo = ttk.Combobox(app, 
                            values=[
                                    "January", 
                                    "February",
                                    "March",
                                    "April",
                                    "May"])


combo.grid(column=0, row=1)
combo.current(1)
combo.bind("<<ComboboxSelected>>", setValue)
app.mainloop()

Примените эту логику к своему коду, и она должна работать

ОБНОВЛЕНИЕ

Чтобы переназначить значения определенного Combobox, попробуйте следующее: (Используя тот же пример, что и выше)

def setValue(event):
    if combo.get()=='February':
        combo['values'] = ['January', 'May']
    else:
        combo['values'] = ['January', 'February', 'March', 'April', 'May']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...