提示:运行Python 3.7或更高版本
例如:
BeeWare 是一个基于 Python 构建的跨平台应用开发框架,能够让 Python 编写的图形程序在 iOS, Android, Windows, MacOS, Linux, Web, 和 tvOS 上运行,看起来是个非常强大的最新GUI库!
安装:
创建应用
BeeWare 安装完成之后,我们就可以通过 briefcase 命令在命令行终端进行 BeeWare 应用的管理,比如新建、运行、构建、打包等等。
命令输入之后,会让我们输入「应用的正式名称」、「应用程序名称」、「域名」、「项目名称」等等信息,在这里出于演示,我们统统使用默认值。
输入完成之后,BeeWare会开始创建应用,创建完成之后,会有如下提示:
同时目录下多出了一个与应用程序名称同名的目录:
接下来我们打开 HelloWorld目录下的src/helloworld/app.py,之后代码就是从这里编写,然后主窗口是__main__.py
接下来这里,因为我是直接打包了Python的一些第三方库:requests 、BeautifulSoup,所以需要做一个配置修改,找到Helloworld目录下的 pyproject.toml 这个文件,然后找到第15行的requires参数添加你需要的第三方库,比如:
briefcase dev
这里我默认修改了app.py几行代码
"""
My first application
"""
import toga
import requests
from bs4 import BeautifulSoup
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class HelloWorld(toga.App):
def __init__(
self,
formal_name=None,
app_id=None,
app_name=None,
id=None,
icon=None,
author=None,
version=None,
home_page=None,
description=None,
startup=None,
windows=None,
on_exit=None,
factory=None,
):
super().__init__(formal_name, app_id, app_name, id, icon, author, version, home_page, description, startup,
windows, on_exit, factory)
self.headers = None
self.title_name = None
self.main_box = None
def startup(self):
"""
Construct and show the Toga application.
Usually, you would add your application to a main content box.
We then create a main window (with a name matching the app), and
show the main window.
"""
self.main_box = toga.Box(style=Pack(direction=COLUMN))
button = toga.Button(
'GET',
on_press=self.get_pyauto, # 按钮要调用的函数
style=Pack(padding=5)
)
self.main_box.add(button)
self.main_window = toga.MainWindow(title=self.formal_name)
self.main_window.content = self.main_box
self.main_window.show()
def get_pyauto(self, widget):
self.headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/102.0.5005.124 Safari/537.36 Edg/102.0.1245.41 "
}
req = requests.get('https://www.pyautorobot.xyz/', headers=self.headers)
if req.status_code == 200:
req.encoding = "utf-8"
soup = BeautifulSoup(req.text, "html.parser")
self.title_name = soup.title.text
label = toga.Label(
self.title_name,
style=Pack(padding=(0, 5))
)
self.main_box.add(label)
def main():
return HelloWorld()
这里的__main__.py代码不变,主程序入口!
(1)首先,创建应用的安卓脚手架:briefcase create android
输入y,创建安卓平台环境。
(2)接着我们编译程序,构建安卓应用:briefcase build android
(3)编译完成之后,运行模拟器。这里我电脑配置原因,没有安装模拟器而是直接打包apk文件,在这里会让我们选择设备,可以选择 BeeWare 提供的安卓虚拟机或者是在电脑上连接自己的手机,我们选择安卓虚拟机:briefcase run android
注:这里的话,我的Python版本是3.9,建议安装3.7或者3.8
(4)最后,打包安卓应用:briefcase package android
打包完成之后,会默认生成一个apk文件,那个文件就是我们打包好的安卓app文件,在目录下:D:\AutoProject\helloworld\android\gradle\Hello World\app\build\outputs\apk\debug\app-debug.apk
感谢Python爱好者,感谢这个伟大的开源自由教皇主义!作者:发发 【&】QQ: 2633475788