Как мне запустить хорошую функцию easygui choicebox

#python #pygame #easygui

#python #pygame #easygui

Вопрос:

         if event.type == MOUSEBUTTONUP:
            mouseX, mouseY=event.pos
            if warsaw_button.collidepoint(mouseX,mouseY):
                choices = ["build a structure", "acquire units", "destroy structure", "launch from silo"]
                choicebox("What do you want to do commander?", warsaw_name, choices)
                if choicebox == choices[0]:
                    msgbox("you want to build a structure")
                elif choicebox == choices[1]:
                    msgbox("you want to acquire more units")
                elif choicebox == choices[2]:
                    msgbox("you want to destroy structures you built")
                elif choicebox == choices[3]:
                    msgbox("you want to launch missile from a silo")
 

Когда я что-то выбираю, msgbox просто не выходит

Комментарии:

1. choicebox Сама функция никогда не будет равна строке. Вам нужно сохранить результат вызова функции в переменной, а затем протестировать эту переменную по строкам.

Ответ №1:

Вы тестируете choicebox функцию на своих строках. Вместо этого протестируйте результат choicebox функции на ваших строках. Чтобы сделать ее более чистой, присвойте ее choice переменной.

         if event.type == MOUSEBUTTONUP:
            mouseX, mouseY=event.pos
            if warsaw_button.collidepoint(mouseX,mouseY):
                choices = ["build a structure", "acquire units", "destroy structure", "launch from silo"]
                choice = choicebox("What do you want to do commander?", warsaw_name, choices)
                if choice == choices[0]:
                    msgbox("you want to build a structure")
                elif choice == choices[1]:
                    msgbox("you want to acquire more units")
                elif choice == choices[2]:
                    msgbox("you want to destroy structures you built")
                elif choice == choices[3]:
                    msgbox("you want to launch missile from a silo")