如何使用Python构建你的第一个移动应用程序

499 阅读5分钟

使用Python构建你的第一个移动应用程序

最近有一种转变,就是开发多平台的语言和框架。这就是用一个库来开发可以在Windows、macOS、Android和Linux上运行的应用程序。

这种趋势使程序员不必为不同的平台重新编写相同的代码。因此,例如,一个安卓开发者可以写一个代码库,可以有效地在不同设备上运行。

Kivy python采取了同样的途径,允许开发者为多个操作系统和设备开发多平台的应用程序。因此,使用这个库开发的应用程序在其运行的所有平台上都是相似的。

Kivy的一个优点是提供了一个图形化的用户界面,开发者在开发应用程序时与之进行交互。

在本教程中,读者将学习如何设置Kivy进行开发,并使用同一库创建一个基本的应用程序。然后,我们将建立一个图形用户界面的应用程序,供用户进行快速的基本年龄计算。

这个项目的开发将使读者了解使用Kivy库的入门级编程,使用图像、文本、按钮和标签等组件创建一个图形用户界面。

本教程还将教会用户如何与各种布局组件进行交互。

前提条件

读者应该对以下内容有很好的了解,以便继续学习本教程。

  • Python编程语言
  • Python中的对象和类

项目设置

如果你的系统中已经安装了Kivy库,那将是最好的开始。使用下面的命令,在你的机器上安装Kivy。

pip install kivy

库导入

创建一个文件夹并将其称为calculator app 。这个名字是应用程序的名称。在创建的文件夹中,创建一个新的文件,将其称为main.py ,并添加下面的片段。

from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.uix.text input import TextInput

编码应用程序的部件

上面的代码段导入了我们建立Age Calculator应用程序所需的组件小工具。

接下来,通过初始化一个叫做AgeCalculator 的类,为应用程序创建一个窗口对象。Kivy Python是基于类和对象的,所以如果读者没有很好地掌握Python类的知识,他们可以在教程之前看看这个。

class AgeCalculator(App):
    def build(self):
        self.window = GridLayout()
    return self.window

最后,我们指定在程序执行文件后立即运行的函数。

if __name__ == "__main__":
 AgeCalculator().run()

我们需要对我们的应用程序进行样式设计,使其具有更多的初始化用户界面和交互。例如,我们将首先设置网格布局的列数。然后,我们将在实现完整的功能后对应用程序做进一步的样式设计。

self.window.cols = 1

我们将使用下面的片段为我们的应用程序设置标识。同样,将应用程序的标志保存在与main.py 文件相同的目录中,这样应用程序就可以很容易地找到它。

self.window.add_widget(Image(source("logo_image.png")))

由于这个应用程序的目的是在用户提供出生日期时找到他们的年龄,我们需要提供一个输入,让他们插入出生日期,并给它一个标签,说明 "输入你的出生日期"。

self.ageRequest = Label(text = "Enter your year of birth...")
self.window.add_widget(self.ageRequest)

self.date = TextInput(multiline=False)
self.window.add_widget(self.date)

收集用户输入

让我们设置一个应用程序来连接用户的输入,也就是出生日期。

self.date = TextInput()

将计算年龄的函数绑定到按钮上

我们需要将计算年龄的回调函数与按钮绑定,这样当点击Calculate Age 按钮时,就会调用getAge 函数,根据输入的出生年月计算出年龄。

self.button = Button(text = "Calculate Age")
self.button.bind(on_press = self.getAge)
self.window.add_widget(self.button)

计算年龄的函数

这个函数获取输入的出生年份并从当前年份中减去。我们使用DateTime Python模块并从中提取年份部分。

此外,我们将用户输入的年份从字符串转换为整数,以计算出统一的数据类型。最后,我们将结果转换为字符串并显示给用户。

def getAge(self, event):
    today = datetime.today().year 
    dob = self.date.text
    age = int(today) - int(dob) 
    self.ageRequest.text = "You are " + str(int(age)) + " years old"

塑造应用程序的用户界面。

为了正确地设计我们的应用程序,我们可以从为应用程序的侧面和底部添加边距开始。边距是指应用程序中某个特定组件周围的空间。

在我们的例子中,边距将是容器布局周围的空间。随后,我们使用下面的代码段来玩弄应用程序的所有其他组件。

该模块的另一个优点是,所开发的应用程序会自动响应屏幕尺寸,并给出一个清晰的主体屏幕尺寸的轮廓。

def build(self):
    self.window = GridLayout()
    self.window.cols = 1
    self.window.size_hint = (0.6, 0.7)
    self.window.pos_hint = {"center_x": 0.5, "center_y": 0.5 }
    self.window.add_widget(Image(source("logo_image.png")))


    self.ageRequest = Label(
        text = "Enter your date of birth...", 
        font_size = 50,
        color = "#ffffff",
        bold = True
    )
    self.window.add_widget(self.ageRequest)
    
    self.date = TextInput(
        multiline=False,
        padding_y = (30, 30),
        size_hint = (1, 0.7),
        font_size = 30
    )
    self.window.add_widget(self.date)

    self.button = Button(
        text = "Calculate Age",
        size_hint = (0.5, 0.5),
        bold = True,
        font_size = 30
    )
    self.button.bind(on_press = self.getAge)
    self.window.add_widget(self.button)

    return self.window

运行应用程序

要运行该应用程序,请打开终端,然后导航到项目目录。接下来,在项目目录下运行以下命令。

python main.py

image.png

总结

在这篇文章中,读者了解了使用Kivy python库创建移动应用程序的过程。我们使用多平台的python模块开发了一个年龄计算器应用程序,并测试了我们的应用程序的功能。

我们意识到使用Kivy开发的每个组件都是基于对Python类和对象的理解。