标签
内容简介
《Developing MeeGo Apps with Python and QML》是开发者 Thomas Perl(m@thp.io)为 MeeGo 平台编写的一份教程式技术文档,最初以网络文档的形式发布在其个人站点 thp.io(2010 年),并未经过传统出版社出版,也没有正式的书号和定价信息。全书围绕「用 Python(PySide 绑定)配合 QML 界面开发 MeeGo 应用」这一主线展开:先说明为什么选择 Python 开发 MeeGo 应用,包括入门门槛低、自动内存回收、无需编译、能完整调用 Qt 库、代码量更少、适合快速原型以及在设备上直接开发等优点;接着讲解如何在 MeeGo Netbook 上取得构建脚本、从源码编译 PySide 并安装到用户主目录、配置环境变量与验证安装是否成功。示例部分由浅入深:Hello World 展示了 .py 与 .qml 的配合方式,WebView 示例演示在 QML 中显示 HTML 内容,随后以播客客户端 gPodder 为例,为已有应用重写一套 QML 界面并编写 Python 胶水层。最后一部分讲应用打包:编写 .desktop 入口、图标、Spectacle 打包用的 YAML 描述与 setup.py,生成 RPM 源码包、构建并安装测试。篇幅不长,但覆盖了从环境搭建到出包的完整流程,是 MeeGo 时代 PySide + QML 开发的一份实用入门材料。
编辑推荐
这是一份「小而完整」的技术文档,而不是大部头教材——恰恰因为篇幅短,它读起来几乎没有赘余:开门见山讲清为什么用 Python + PySide 写 MeeGo 应用,然后直接把环境搭起来,接着就是能跑起来的代码。对新手最友好的一点是,它不满足于 Hello World,而是拿一个真实应用 gPodder 当靶子,演示如何为既有后端重写一套 QML 界面、如何在 Python 里写胶水层、如何把 .qml 文件拆成主界面与列表组件。这种「先小例子、后真项目」的编排,正是许多教程缺的一环。打包章节同样难得:桌面入口、图标、Spectacle 的 YAML 描述、distutils 的 setup.py、生成 RPM 源码包并安装验证,全流程都给了具体文件名,照着做即可。需要提醒的是,本书写于 2010 年,MeeGo 项目和早期 PySide 版本都已成为历史,命令与仓库地址多已失效,阅读价值主要在于理解 QML 与 Python 结合的分层思路、以及 Linux 桌面端应用打包的基本方法论,因此更适合当作「历史现场的技术笔记」而非可照抄的现代教程。
适合谁读
适合
- 对 Qt/QML 与 Python 结合开发感兴趣的开发者
- 想了解 2010 年代移动 Linux 平台技术生态的技术史爱好者
- 需要参考 Linux 桌面应用 RPM 打包全流程的工程师
- 希望用真实项目(如 gPodder)学习 QML 界面重写的读者
不适合
- 寻找现代移动开发(Android/iOS/Flutter)入门教材的读者
- 期望直接照抄代码在当今环境运行的新手
- 需要系统讲解 Qt 框架原理与 C++ 底层的读者
阅读建议
- 先跳过平台背景章节,直接读 Hello World 与 WebView 两个例子,建立 PySide + QML 配合的直观印象。
- 读 gPodder 示例时把重点放在「Python 胶水层如何向 QML 暴露数据」,而不是具体 API 调用。
- 打包章节可按文件名顺序对照实践,但需替换为当前可用的打包工具与仓库地址。
- 将它作为历史文献阅读,配合当下 PySide6 + Qt Quick 的官方文档对照,理解哪些思路仍然成立。
目录
- Introduction(引言)
- Why should I use Python to develop MeeGo apps?
- Links
- Setting up the environment
- Getting the build scripts
- Building PySide and installing into $HOME
- Setting up environment variables
- Testing the installations
- Basic QML tutorial examples
- Hello World
- The Python source (HelloMeeGo.py)
- The QML UI file (HelloMeeGo.qml)
- Displaying HTML content in a QML WebView
- The Python source code (WebKitView.py)
- The QML content (WebKitView.qml)
- The HTML page (WebKitView.html)
- Writing a new QML UI for existing apps for MeeGo
- A QML UI for gPodder
- The glue layer in Python (gpodder-qml.py)
- The QML main UI file (gpodder-qml.qml)
- The QML file for displaying a list of podcasts (PodcastList.qml)
- The QML file for displaying a list of episodes (EpisodeList.qml)
- Packaging a Python application for MeeGo
- Installing the required dependencies
- Creating the required metadata files
- The desktop entry: gpodder-qml.desktop
- The icon for the app menu: gpodder-qml.png
- The Spectacle YAML file: gpodder-qml.yaml
- The Python distutils file: setup.py
- Changes in the gpodder-qml.py script
- Creating the RPM sources
- Building the RPM package from source
- Installing and testing the RPM package
常见问题
这本书是正式出版的图书吗?
不是。它是 Thomas Perl 于 2010 年发布在个人站点 thp.io 上的教程文档,常以 PDF 形式在网络流传,没有出版社、ISBN 与定价信息,因此本书目数据中这些字段留空。
为什么强调用 Python 而不是 C++ 开发?
文档给出的理由包括:入门门槛低、自动垃圾回收、解释执行无需编译、通过 PySide 可访问全部 Qt 模块、代码量约为 C++ 的三分之一,且适合在低性能上网本上边改边跑。
书中的代码现在还能直接运行吗?
大概率不能。MeeGo 项目已停止,早期 PySide 的构建脚本、仓库地址与依赖名多已失效。其中的 QML 分层思路与打包方法论仍有参考价值,但需改用当前 PySide6 等工具链重做。
文中的 gPodder 示例讲了什么?
以播客客户端 gPodder 为例,演示为既有 Python 后端新写一套 QML 界面:主界面文件、播客列表与单集列表组件,以及把后端数据暴露给 QML 的 Python 胶水层,最后打包成 RPM 安装测试。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。