Как сделать кнопку, выводящую текст в зависимости от положения чекбокса

возникла проблемка - никак не могу понять как заставить кнопку выводить разный текст в зависимости от чекбоксов. Вот минимально рабочий код от программы, нужно, чтобы при нажатии на кнопку без выбранных чекбоксов выводились, например, - V V, если выбран верхний чекбокс - V A, нижний - A V, оба - A A. Выдаёт он всё время только A A.

import tkinter as tk
from tkinter import ttk

class App(tk.Tk):
    def __init__(self):
        super().__init__()
        self.geometry('180x125')
        opts = {'ipadx': 5, 'ipady': 5 , 'sticky': 'nswe'}
        group_3 = tk.LabelFrame(self, padx=10, pady=10)
        group_3.grid(row=0, column=1, **opts)
        chk1_state=tk.BooleanVar()
        chk1_state.set(False)
        chk1=tk.Checkbutton(group_3, variable=chk1_state)
        chk1.grid(row=4, column=1, sticky=tk.W)
        
        group_4 = tk.LabelFrame(self, padx=10, pady=10)
        group_4.grid(row=1, column=1, **opts)
        chk2_state=tk.BooleanVar()
        chk2_state.set(False)
        chk2=tk.Checkbutton(group_4, variable=chk2_state)
        chk2.grid(row=4, column=1, sticky=tk.W)

        def emu():
            if (chk1_state.get()==True, chk2_state.get()==True):
                print("A A")
            elif (chk1_state.get()==True, chk2_state.get()==False):
                print("V A")
            elif (chk1_state.get()==False, chk2_state.get()==True):
                print("A V")
            else:
                print("V V")

        group_7 = tk.LabelFrame(self, padx=10, pady=10)
        group_7.grid(row=0, column=3, rowspan=2, **opts)
        btn=tk.Button(group_7, text="Start", width=6, command=emu)
        btn.grid(row=5, column=0, sticky=tk.W)

if __name__ == "__main__":
    app = App()
    app.mainloop()

Пробовал ttk чекбоксы с их .state и .instate, но видимо совсем не понимаю как их использовать, результат был тот же. Питон, честно, понимаю пока весьма плохо, почти всю программу собирал с помощью гайдов и англоязычной ветви сего форума (и то не задавая вопросы, а находя кого-то с похожей проблемой)


Ответы (1 шт):

Автор решения: Salavat

У вас проблема была в условиях. Рекомендую побольше изучить основы Python.

def emu():
            if chk1_state.get() and chk2_state.get():
                print("A A")
            elif chk1_state.get() and chk2_state.get() == False:
                print("V A")
            elif chk1_state.get() == False and chk2_state.get():
                print("A V")
            else:
                print("V V")
→ Ссылка