Как добавить третий аргумент в проект учебного калькулятора Flet?Python

Программы на Python
Anonymous
Как добавить третий аргумент в проект учебного калькулятора Flet?

Сообщение Anonymous »

import flet as ft

class CalcButton(ft.ElevatedButton):
def __init__(self, text, button_clicked, expand=1):
super().__init__()
self.text = text
self.expand = expand
self.on_click = button_clicked
self.data = text

class DigitButton(CalcButton):
def __init__(self, text, button_clicked, expand=1):
CalcButton.__init__(self, text, button_clicked, expand)
self.bgcolor = ft.colors.WHITE24
self.color = ft.colors.WHITE

class ActionButton(CalcButton):
def __init__(self, text, button_clicked):
CalcButton.__init__(self, text, button_clicked)
self.bgcolor = ft.colors.ORANGE
self.color = ft.colors.WHITE

class ExtraActionButton(CalcButton):
def __init__(self, text, button_clicked):
CalcButton.__init__(self, text, button_clicked)
self.bgcolor = ft.colors.BLUE_GREY_100
self.color = ft.colors.BLACK

class CalculatorApp(ft.Container):
# application's root control (i.e. "view") containing all other controls
def __init__(self):
super().__init__()
self.reset()

self.result = ft.Text(value="0", color=ft.colors.WHITE, size=20)
self.width = 350
self.bgcolor = ft.colors.BLACK
self.border_radius = ft.border_radius.all(20)
self.padding = 20
self.content = ft.Column(
controls=[
ft.Row(controls=[self.result], alignment="end"),
ft.Row(
controls=[
ExtraActionButton(
text="AC", button_clicked=self.button_clicked
),
ExtraActionButton(
text="+/-", button_clicked=self.button_clicked
),
ExtraActionButton(text="%", button_clicked=self.button_clicked),
ActionButton(text="/", button_clicked=self.button_clicked),
]
),
ft.Row(
controls=[
DigitButton(text="7", button_clicked=self.button_clicked),
DigitButton(text="8", button_clicked=self.button_clicked),
DigitButton(text="9", button_clicked=self.button_clicked),
ActionButton(text="*", button_clicked=self.button_clicked),
]
),
ft.Row(
controls=[
DigitButton(text="4", button_clicked=self.button_clicked),
DigitButton(text="5", button_clicked=self.button_clicked),
DigitButton(text="6", button_clicked=self.button_clicked),
ActionButton(text="-", button_clicked=self.button_clicked),
]
),
ft.Row(
controls=[
DigitButton(text="1", button_clicked=self.button_clicked),
DigitButton(text="2", button_clicked=self.button_clicked),
DigitButton(text="3", button_clicked=self.button_clicked),
ActionButton(text="+", button_clicked=self.button_clicked),
]
),
ft.Row(
controls=[
DigitButton(
text="0", expand=2, button_clicked=self.button_clicked
),
DigitButton(text=".", button_clicked=self.button_clicked),
ActionButton(text="=", button_clicked=self.button_clicked),
]
),
]
)

def button_clicked(self, e):
data = e.control.data
print(f"Button clicked with data = {data}")
if self.result.value == "Error" or data == "AC":
self.result.value = "0"
self.reset()

elif data in ("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "."):
if self.result.value == "0" or self.new_operand == True:
self.result.value = data
self.new_operand = False
else:
self.result.value = self.result.value + data

elif data in ("+", "-", "*", "/"):
self.result.value = self.calculate(
self.operand1, float(self.result.value), self.operator
)

Подробнее здесь: https://stackoverflow.com/questions/790 ... or-project

Вернуться в «Python»