使用Flet在Python中创建计算器应用程序
在本教程中,我们将逐步向您展示如何使用Flet框架在Python中创建计算器应用程序,并将其部署为Web应用程序。该应用程序是一个简单的控制台程序,但它是一个具有类似于iPhone计算器应用程序UI的多平台应用程序:
您可以在此处找到实时演示这里。
在本教程中,我们将涵盖创建Web应用程序的所有基本概念:构建页面布局,添加控件,创建可重用的UI组件,处理事件和部署选项。
该教程包括以下步骤:
从'@theme/TOCInline'中导入TOCInline;
开始使用Flet
要在Python中使用Flet编写Web应用程序,您不需要了解HTML,CSS或JavaScript,但必须具备基本的Python和面向对象编程知识。
Flet要求Python 3.8或更高版本。要在Python中使用Flet创建Web应用程序,您需要首先安装“flet”模块:
pip install flet
即将开始,让我们创建一个简单的hello-world应用程序。
创建hello.py
并输入以下内容:
import flet as ft
def main(page: ft.Page):
page.add(ft.Text(value="Hello, world!"))
ft.app(target=main)
运行此应用程序,您将看到一个带有问候语的新窗口:
添加页面控件
现在您已准备好创建一个计算器应用程序了。
首先,您需要一个用于显示计算结果的Text控件,以及几个带有所有数字和操作的ElevatedButton。
创建calc.py
并输入以下内容:
import flet as ft
def main(page: ft.Page):
page.title = "Calc App"
result = ft.Text(value="0")
page.add(
result,
ft.ElevatedButton(text="AC"),
ft.ElevatedButton(text="+/-"),
ft.ElevatedButton(text="%"),
ft.ElevatedButton(text="/"),
ft.ElevatedButton(text="7"),
ft.ElevatedButton(text="8"),
ft.ElevatedButton(text="9"),
ft.ElevatedButton(text="*"),
ft.ElevatedButton(text="4"),
ft.ElevatedButton(text="5"),
ft.ElevatedButton(text="6"),
ft.ElevatedButton(text="-"),
ft.ElevatedButton(text="1"),
ft.ElevatedButton(text="2"),
ft.ElevatedButton(text="3"),
ft.ElevatedButton(text="+"),
ft.ElevatedButton(text="0"),
ft.ElevatedButton(text="."),
ft.ElevatedButton(text="="),
)
ft.app(target=main)
运行该应用程序,您应该会看到如下页面:
构建页面布局
现在让我们将文本和按钮排列在6个水平的行中。
将calc.py
的内容替换为以下内容:
import flet as ft
def main(page: ft.Page):
page.title = "Calc App"
result = ft.Text(value="0")
page.add(
ft.Row(controls=[result]),
ft.Row(
controls=[
ft.ElevatedButton(text="AC"),
ft.ElevatedButton(text="+/-"),
ft.ElevatedButton(text="%"),
ft.ElevatedButton(text="/"),
]
),
ft.Row(
controls=[
ft.ElevatedButton(text="7"),
ft.ElevatedButton(text="8"),
ft.ElevatedButton(text="9"),
ft.ElevatedButton(text="*"),
]
),
ft.Row(
controls=[
ft.ElevatedButton(text="4"),
ft.ElevatedButton(text="5"),
ft.ElevatedButton(text="6"),
ft.ElevatedButton(text="-"),
]
),
ft.Row(
controls=[
ft.ElevatedButton(text="1"),
ft.ElevatedButton(text="2"),
ft.ElevatedButton(text="3"),
ft.ElevatedButton(text="+"),
]
),
ft.Row(
controls=[
ft.ElevatedButton(text="0"),
ft.ElevatedButton(text="."),
ft.ElevatedButton(text="="),
]
),
)
ft.app(target=main)
运行应用程序,您应该会看到一个像这样的页面:
使用容器进行装饰
为了在计算器周围添加一个带有圆角边框的黑色背景,我们将使用Container控件。Container只能装饰一个控件,因此我们需要将所有的6行包装在一个单独的垂直Column中,该垂直列将用作容器的content
:
为了完成程序的UI部分,更新Text的color
和size
属性,以及按钮的color
和bgcolor
属性。为了使按钮在行内均匀对齐,我们将使用expand
属性,如上图所示。
由于程序现在太长,无法完全包含在本教程中,请从这里复制此步骤的整个代码。运行应用程序,您应该会看到一个像这样的页面:
正是我们想要的!