当前位置:   article > 正文

【Python】用toga构建本地UI风格的程序_toga python

toga python

亲爱的读者,您好!

欢迎阅读本篇博客,今天我想和大家分享如何使用Toga构建第一个桌面应用程序。Toga是一个用Python编写跨平台native GUI应用的工具包。通过学习本篇教程,您将能够学会如何使用Toga快速开发一个简单的桌面应用。

准备开发环境

要使用Toga构建应用程序,首先需要在电脑上安装Python 3。您可以通过官方安装包或系统的包管理器进行安装。推荐的开发环境设置方式是:建立一个虚拟环境,安装Toga依赖,然后开始编程。

具体步骤是:

  1. 打开终端,新建一个文件夹toga-tutorial,并进入该文件夹
$ mkdir toga-tutorial
$ cd toga-tutorial
  • 1
  • 2
  1. 使用Python内置的venv模块新建一个虚拟环境
$ python3 -m venv venv 
  • 1
  1. 激活虚拟环境
$ source venv/bin/activate # Linux/macOS
(venv) C:\> venv\Scripts\activate # Windows
  • 1
  • 2
  1. 在虚拟环境中安装Toga
(venv) $ python -m pip install toga
  • 1

请确保系统已经安装了Toga依赖的开发库,如python3、cairo、gobject-introspection等。如果安装Toga时出现错误,请先检查是否正确安装了所有平台先决条件。

这样我们就可以开始编写Toga应用程序了!

编写应用程序

我们来编写一个简单的"Hello World"应用,具有一个按钮,点击按钮时在控制台打印“hello”。

首先导入toga:

import toga
  • 1

然后定义一个button_handler函数作为按钮的点击回调:

def button_handler(widget):
    print("hello")
  • 1
  • 2

接着定义一个build方法来告诉Toga如何构建主窗口内容:

def build(app):
    box = toga.Box()
    
    button = toga.Button('Hello world', on_press=button_handler)
    button.style.padding = 50
    button.style.flex = 1  
    box.add(button)

    return box
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这里我们创建了一个box来放置按钮,设置了按钮的文本和点击回调函数,并通过padding和flex来设置按钮的样式。最后将按钮添加到box中,并将box作为主窗口内容返回。

最后,实例化Toga应用:

def main():
    return toga.App('First App', 'org.beeware.helloworld', startup=build)

if __name__ == '__main__':
    main().main_loop()
  • 1
  • 2
  • 3
  • 4
  • 5

给应用程序起一个名字,定义唯一标识符,将build方法作为启动参数传入,然后启动主事件循环。

这样,一个简单的Toga应用就编写完成了,保存为helloworld.py文件。

运行应用程序

Toga应用程序需要以模块方式运行,需要使用-m参数,不需要包含.py扩展名:

(venv) $ python -m helloworld
  • 1

这将弹出一个带按钮的窗口,点击按钮就可以在控制台看到打印的“hello”了。

虽然我们没有定义菜单,应用程序会有默认的菜单条目用于退出应用和关于页面。键盘绑定,窗口的关闭按钮也会正常工作。应用程序默认会有一个Toga图标(一只叫Tiberius的大牛)。

如果在安装使用Toga时遇到问题,请先尝试在虚拟环境中安装Toga,而不是直接全局安装。另外使用最新版本的依赖库也会对解决问题有所帮助。

这就是使用Toga构建第一个简单桌面应用程序的方法了。希望本文对您有所帮助!Toga使开发跨平台的GUI应用程序变得简单快速。了解Toga的强大功能,您就可以使用Python进一步开发更强大的应用程序了。感谢您的阅读,祝您编码愉快!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/257520
推荐阅读
相关标签
  

闽ICP备14008679号