首页 > 编程语言 >python库BeeWare,一个如雷贯耳的可以创建原生应用程序的库

python库BeeWare,一个如雷贯耳的可以创建原生应用程序的库

时间:2024-06-22 12:59:20浏览次数:20  
标签:__ 如雷贯耳 python 创建 BeeWare 应用程序 Python Hello

目录

BeeWare 包括以下主要组件和工具:

创建BeeWare虚拟环境

配置BeeWare

 创建一个新的BeeWare项目( Hello World! )

尝试 Hello World 样例



BeeWare 是一个开源项目,旨在帮助开发者使用 Python 创建原生应用程序,覆盖了移动、桌面和 Web 平台。BeeWare 通过提供一系列工具和库,使得开发者可以利用 Python 的简洁和强大来构建跨平台的应用程序,而无需学习其他语言或工具。

BeeWare 包括以下主要组件和工具:

  1. Toga:Toga 是一个用于创建原生桌面应用程序的 Python 框架,支持多个平台,包括 macOS、Windows 和 Linux。它提供了丰富的 UI 组件和布局管理器,以及与平台原生控件的无缝集成,使得开发者可以轻松地构建具有原生外观和感觉的应用程序。

  2. Briefcase:Briefcase 是一个用于将 Python 应用程序打包为可执行文件的工具。它支持将 Python 代码转换为原生的移动应用程序(如 Android APK 和 iOS 应用)、桌面应用程序(如 Windows 可执行文件和 macOS 应用)以及 Web 应用程序,从而让开发者能够将他们的 Python 代码发布到各种不同的平台上。

  3. Rubicon-ObjC 和 Rubicon-Java:这是两个用于在 Python 中调用 Objective-C 和 Java 代码的库,使得开发者能够利用现有的 Objective-C 和 Java 库来扩展他们的 Python 应用程序,从而实现更多的功能和特性。

  4. Batavia:Batavia 是一个用于在浏览器中运行 Python 代码的项目,它通过将 Python 代码转换为 JavaScript 来实现跨平台的支持。这使得开发者可以编写一次 Python 代码,然后在 Web 浏览器中运行,而无需改变任何代码。

通过 BeeWare,开发者可以使用熟悉的 Python 语言和工具来构建原生应用程序,而无需学习其他语言或工具。这为 Python 社区的开发者提供了一个更广阔的舞台,让他们能够参与到移动应用、桌面应用和 Web 应用的开发中。

创建BeeWare虚拟环境

在工程文件夹下继续以下代码,创建beeware虚拟环境并激活。当然这一步也可以用conda等实现。(以下代码为Windows 命令行窗口创建虚拟环境的例子。)

md beeware-tutorial
cd beeware-tutorial
py -m venv beeware-venv
beeware-venv\Scripts\activate

BeeWare 的官方网站提供了丰富的文档、示例代码和社区支持,帮助开发者快速上手并解决问题。如果你对使用 Python 构建原生应用程序感兴趣,不妨了解一下 BeeWare,它可能会成为你的理想选择。

配置BeeWare

激活虚拟环境后,pip下载相关包体(注意,根据官方说法,建议采用python -m操作,以便自动更新)。

python -m pip install briefcase

创建一个新的BeeWare项目( Hello World! )

下载完毕后,即可开始创建一个新的项目了!使用以下方法:

briefcase new

随后将出现以下几个项目初始化设置(直接回车将采用方括号里的内容):

  1. Formal Name [Hello World]:(填入项目名称,该处是展示给用户的名称。)
  2. App Name [helloworld]: (对应的项目名称,该处是提供给机器编译所需的名称)
  3. Bundle Identifier [com.example]: (应用商店标识,如果没有直接回车跳过此条目。)
  4. Project Name [Hello World]: (Briefcase提供了多应用管理,如果此项目只有一个应用,可以采用与Formal Name 一致的名称。)
  5. Description [My first application]: (填写应用的一行描述。)
  6. Author [Jane Developer]: (应用开发作者署名)
  7. Author's Email [[email protected]]: (作者联系邮箱)
  8. Application URL [https://example.com/helloworld]: (未来的应用发布页网址)
  9. Project License [1]: (根据提示选取应用开源协议,当然也可以选择其他不开源的协议)
  10. GUI Framework [1]: (选择GUI框架,可选[1]Toga, [2]PySide6, [3]PursuedPyBear, [4]Pygame 或无GUI [5]None .其中仅[1]Toga支持ios/android平台的打包分发。)

注意,在该步骤中需要保证git clone能够正常连接,也即第三部分配置成功。

 

尝试 Hello World 样例

在完成上一部分的新建项目后,会有以下提示:

[helloworld] Generating a new application 'Hello World'
Using app template: https://github.com/beeware/briefcase-template, branch v0.3.17

[helloworld] Generated new application 'Hello World'

To run your application, type:

    $ cd helloworld
    $ briefcase dev

我们可以发现,Briefcase在当前目录下新建了一个helloworld文件夹(App Name),若要以开发者身份运行此应用,则需要:

cd helloworld
briefcase dev

当使用 BeeWare 的 Toga 框架时,你可以使用 Python 编写代码来创建原生桌面应用程序。以下是一个简单的示例,演示了如何使用 Toga 创建一个包含按钮和标签的桌面应用程序:

import toga

def button_handler(widget):
    label.text = 'Hello, BeeWare!'

def build(app):
    box = toga.Box()

    # 创建一个按钮
    button = toga.Button('Click me', on_press=button_handler)
    
    # 创建一个标签
    global label
    label = toga.Label('Welcome to BeeWare!')

    box.add(button)
    box.add(label)

    # 创建窗口
    main_window = toga.MainWindow(title=app.name)
    main_window.content = box

    return main_window

def main():
    # 创建并运行应用程序
    app = toga.App('MyFirstApp', 'org.example.myfirstapp', startup=build)
    app.main_loop()

if __name__ == '__main__':
    main()

在这个示例中,我们首先导入了 toga 模块,然后定义了一个按钮的事件处理函数 button_handler 和一个应用程序的构建函数 build。在 build 函数中,我们创建了一个 Box 容器,并向其中添加了一个按钮和一个标签。最后,我们创建了一个主窗口,并将 Box 容器设置为其内容,从而构建了一个基本的桌面应用程序界面。

当你运行这个示例时,它将会启动一个简单的桌面应用程序窗口,包含一个按钮和一个标签。当你点击按钮时,标签的文本将会变成“Hello, BeeWare!”。

这只是一个简单的示例,Toga 提供了许多其他丰富的 UI 组件和布局管理器,以及与平台原生控件的无缝集成,使得你可以构建具有原生外观和感觉的应用程序。同时,BeeWare 还提供了 Briefcase 工具,可以帮助你将 Python 应用程序打包为可执行文件,以便在不同的平台上发布和运行。

Python魔法方法__call__深入详解-CSDN博客文章浏览阅读1.3k次,点赞25次,收藏30次。_call____call__方法不仅限于无参数调用,它还可以接收任意数量的位置参数和关键字参数,从而实现更加复杂的逻辑。比如,创建一个Multiplier# 使用Multiplier类# 传递参数调用实例print(times_three(10)) # 输出: 30通过这种方式,__call__魔法方法不仅增加了代码的可读性和灵活性 ,还为实现更高级的设计模式 ,如装饰器、策略模式等,奠定了基础。掌握__call__的应用,是深入理解Python面向对象编程的重要一步。https://blog.csdn.net/xyh2004/article/details/139652422
Python自定义接口,也能玩得这么花-CSDN博客文章浏览阅读1.1k次,点赞25次,收藏28次。在Python中,抽象基类(Abstract Base Class,简称ABC)是一种特殊形式的类,用于定义接口规范,即一组方法的声明,但不提供具体实现。它允许子类继承并强制要求实现这些抽象方法。Python通过abc模块提供了对抽象基类的支持,这对于设计框架和定义接口标准非常有用。要定义一个协议,可以使用类。下面展示如何定义一个简单的Drawable协议,要求对象实现draw()...在这个例子中,Drawable协议定义了一个draw方法,任何实现了draw。https://blog.csdn.net/xyh2004/article/details/139625958
Python定时任务最常用的8种实现方式-CSDN博客文章浏览阅读1.2k次,点赞39次,收藏21次。在Python中,利用标准库threading中的Timer类可以轻松创建定时任务,这对于需要在后台独立于主线程运行的任务特别有用。下面详细介绍如何使用threading.Timer来实现定时任务 ,并探讨定时任务的管理与取消策略。https://blog.csdn.net/xyh2004/article/details/139557860

标签:__,如雷贯耳,python,创建,BeeWare,应用程序,Python,Hello
From: https://blog.csdn.net/xyh2004/article/details/139880812

相关文章

  • Python连接Etcd集群基础教程
    1、背景介绍最近接手了一个项目,项目是使用Python开发的,其中使用到了Etcd,但是项目之前开发的方式,只能够支持单节点连接Etcd,不能够在Etcd节点发生故障时,自动转移。因此需要实现基于现有etcdsdk开发一个能够实现故障转移的功能,或者更换etcdsdk来实现故障转移等功能。先来看看项......
  • 【深度学习】python之人工智能应用篇——图像生成
    图像生成是计算机视觉和计算机图形学领域的一个重要研究方向,它指的是通过计算机算法和技术生成或合成图像的过程。随着深度学习、生成模型等技术的发展,图像生成领域取得了显著的进步,并在多个应用场景中发挥着重要作用。概述图像生成技术主要依赖于各种生成模型和算法,用于从文......
  • Pycharm或cmd在Terminal中运行tensorboard、pip等python包
    这个主要是添加python包的路径到环境变量里因为装了anaconda,所以我们要找的是对应虚拟环境里的包路径,一般是放在anaconda安装路径下的anaconda3\envs\环境名\Scripts里然后找到环境变量找到Path把文件路径添加这样就可以运行pip、tensorboard等包了......
  • 【MySQL连接器(Python)指南】02-MySQL连接器(Python)版本与实现
    文章目录前言MySQL连接器(Python)版本MySQL连接器(Python)实现总结前言MySQL连接器(Python),用于让Python程序能够访问MySQL数据库。要想让Python应用程序正确高效地使用MySQL数据,就需要深入了解MySQL连接器的特性和使用方法。MySQL连接器(Python)版本下表......
  • 【猫狗识别系统】图像识别Python+TensorFlow+卷积神经网络算法+人工智能深度学习
    猫狗识别系统。通过TensorFlow搭建MobileNetV2轻量级卷积神经算法网络模型,通过对猫狗的图片数据集进行训练,得到一个进度较高的H5格式的模型文件。然后使用Django框架搭建了一个Web网页端可视化操作界面。实现用户上传一张图片识别其名称。一、前言本研究中,我们开发了一个基于深......
  • 双基回文数(python练习)
    编写一个程序来检查一个数字是否是双基回文数。回文是指从前往后读和从后往前读都一样的字母、数字的序列。双基回文数是指在十进制和二进制表示中都是回文的数字。例如:585=1001001001是一个双基回文,其二进制是回文形式,十进制也是回文形式。定义函数check_double_base_......
  • 聪明办法学 Python第5节:循环
    作业链接:https://hydro.ac/d/datawhale_p2s/user/53146for循环和循环范围for循环的特点基于提供的范围,重复执行特定次数的操作defsumFromMToN(m,n):total=0#注意:range(x,y)是左闭右开区间,包含x,不包含yforxinrange(m,n+1):total......
  • 「Python爬虫」最细致的讲解Python爬虫之Python爬虫入门(一)
    一、认识爬虫1.1、什么是爬虫?爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。1.2、Python爬虫架构调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取UR......
  • Python进大厂比赛中的特征工程与模型训练
    Python进大厂比赛中的特征工程与模型训练一、引言二、技术概述特征工程模型训练三、技术细节特征工程模型训练四、实战应用五、优化与改进特征工程模型训练六、常见问题特征工程模型训练七、总结与展望一、引言Python作为数据科学界的明星语言,其在机器学习、数......
  • 超越datetime:Arrow,Python中的日期时间管理大师
    介绍Arrow是一个Python库,它提供了一种合理且对人类友好的方法来创建、操作、格式化和转换日期、时间和时间戳。它实现了对datetime类型的更新,填补了功能上的空白,提供了一个智能的模块API,支持许多常见的创建场景。简单来说,它可以帮助您使用更少的导入和更少的代码来处理日期和时间......