Используйте одну кнопку для нескольких задач - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь включить обнаружение, какая вкладка выбрана. В ответ на выбранную вкладку кнопка «Добавить» откроет соответствующее окно.

У меня есть отдельная функция с операторами if, чтобы убедиться, что нажатие кнопки откроет соответствующее окно. Однако это не работает так, как я хочу, чтобы это работало.

Не имеет значения, какая вкладка выбрана, она откроет 2 вкладки из 3.

Вот код функции:

def tab_add_btn():
    if tab_parent.index(active_business):
        nieuwe_zaken.business()
    if tab_parent.index(noc):
        noc_info.add_noc_info()
    if tab_parent.index(caller):
        Form.add_caller()

Приложение вызывает другуюокна из разных файлов .py внутри проекта.

Функции add_noc_info и add_caller открываются каждый раз, когда я нажимаю на кнопку, независимо от того, какая вкладка открыта. Даже если я хочу открыть соответствующую функцию для открытой вкладки.

Я пробовал несколько различных операторов / функций, но безуспешно.

# The function which is called by the button
def tab_add_btn():
    if tab_parent.index(active_business):
        nieuwe_zaken.business()
    if tab_parent.index(noc):
        noc_info.add_info()
    if tab_parent.index(caller):
        Form.add_caller()

# The button
add = ttk.Button(main_window, text = "Add", command = tab_add_btn)
add.place(x = 1093, y = 495)

Я ожидаю, что кнопка откроет соответствующие окна(Функции) в зависимости от того, какая вкладка открыта / выбрана.

Если вам, ребята, нужно больше фрагментов кода, дайте мне знать.

Заранее спасибо!

1 Ответ

1 голос
/ 07 ноября 2019

Нашел решение:

def tab_add_btn():
    tabid = tab_parent.index(tab_parent.select())

    if tabid == 0:
        nieuwe_zaken.business()
        print("Window opened | Niewe Zaken")
    elif tabid == 1:
        noc_info.add_noc_info()
        print("Window opened | NOC Info")
    elif tabid == 2:
        Form.add_caller()
        print("Window opened | Bellers Form")
    else:
        return 0

Сначала я должен был получить tab_id, прежде чем смог построить оператор if.

...