import PySimpleGUI as sg
storedvals = []
sg.LOOK_AND_FEEL_TABLE['Theme'] = {'BACKGROUND': '#292929',
'TEXT': '#009bff',
'INPUT': '#ffffff',
'TEXT_INPUT': '#000000',
'SCROLL': '#ffffff',
'BUTTON': ('#5cfd46', '#151515'),
'PROGRESS': ('#01826B', '#D0D0D0'),
'BORDER': 1, 'SLIDER_DEPTH': 0, 'PROGRESS_DEPTH': 0,
}
sg.theme("Theme")
def mainmenu():
mainmenu = [
[sg.Text("Welcome to the Calculator!")],
[sg.Text("What would you like to do:")],
[sg.Text("1) Add\n2) Subtract\n3) Multiply\n4) Divide\n5) Exit")],
[sg.Text("Please enter the number of the option you would like!")],
[sg.InputText("", key="in1"),sg.Text("", key="answer")],
[sg.ReadButton("Submit")]
]
mainmenu = sg.Window('Window that stays open', mainmenu)
while True:
button, values = mainmenu.Read()
if button is None:
break
choice = int(values["in1"])
mainmenu.FindElement("answer").Update(choice)
if choice == 1:
mainmenu.Close()
add()
if choice == 2:
mainmenu.Close()
subtract()
if choice == 3:
mainmenu.Close()
multiply()
if choice ==4:
mainmenu.Close()
divide()
if choice == 5:
exit()
def add():
add = [
[sg.Text("What numbers would you like to add together?")],
[sg.Text("Stored values are in the drop down option!")],
[sg.Combo([storedvals], size=(5,1), key="num1"), sg.Text("+"), sg.Combo([storedvals], size=(5,1), key="num2")],
[sg.Text("Do you want to store this value")],
[sg.Radio("Yes", "1", key="x"), sg.Radio("No", "1",)],
[sg.ReadButton("Add")],
[sg.Text("Answer:"), sg.Text("", size=(10,1), key="answer")],
[sg.Button("Return to the menu"), sg.Exit()],
]
add = sg.Window("", add)
while True:
button, values = add.Read()
if button is None:
break
num1 = int(values["num1"])
num2 = int(values["num2"])
answer = num1 + num2
add.FindElement("answer").Update(answer)
x = values["x"]
if x == 1:
storedvals.append(answer)
sg.Popup("You answer has been stored in position", storedvals.index(answer))
print(storedvals)
event, values = add.Read()
if event == "Return to the menu":
add.Close()
mainmenu()
mainmenu()
Это мой код. После завершения этой подпрограммы они могут вернуться в главное меню, чтобы снова использовать калькулятор. Я хочу, чтобы они могли сохранить предыдущий ответ на расчет и затем использовать его в последующих расчетах (что работает). Я решил использовать комбо, однако я получаю сообщение об ошибке, и после исследования ошибки я не могу найти решение проблемы. Любые советы полезны.
Ошибка: аргумент TypeError: int () должен быть строкой, байтовоподобным объектом или числом, а не «списком»
Я пробовал несколько разных способы манипулировать им, но я только начал изучать pysimple GUI, поэтому я застрял.