跳转到主要内容

Gaphas是一个GTK绘图小部件

项目描述

Gaphas

Build state Maintainability Test Coverage Docs build state standard-readme compliant Matrix All Contributors

Gaphas是Python的绘图小部件库。

Gaphas Demo

Graphas是一个提供用户界面组件(小部件)用于绘制图表的库。图表可以绘制到屏幕上,并轻松导出为多种格式,包括SVG和PDF。想要构建一个具有图表样式的应用程序吗?那么Graphas就是你的选择!使用这个库来构建树状图、网络图、流程图或其他图表。

该库目前被以下项目用于UML绘图:Gaphor,基于状态机的机器人控制:RAFCON,以及求解数学模型:ASCEND

📑 目录

📜 背景

Graphas是为了提供Gaphor的基础图表绘制功能而构建的。由于Gaphor基于GTK和Cairo,PyGObject提供了访问GUI工具包的接口,PyCairo提供了2D图形库的接口。然而,没有项目将这些技术抽象出来以方便创建图表工具。因此,Graphas被创建为一个库,允许其他使用GTK和Cairo创建图表工具。

以下是它的工作原理

  • 可以将项目(画布项目)添加到画布中。
  • 画布维护项目的树状结构(项目之间的父子关系)。
  • 使用约束求解器来维护项目约束和项目间约束。
  • 项目(和用户)不应该被诸如边界框计算等问题所干扰。
  • 非常模块化——例如,可以交换处理支持。
  • 使用Cairo进行渲染。

库的主要部分包括

  • canvas - 主画布类(项目的容器)。
  • items - 放置在画布上的对象。
  • solver - 一个约束求解器,用于定义项目的布局和连接。
  • gtkview - 一个用于GTK应用程序的视图,使用工具与用户交互。
  • painters - 用来绘制项目的工人。
  • tools - 工具用于处理用户事件(例如鼠标移动和按钮点击)。
  • aspects - 在工具和项目之间提供中间步骤。

Graphas包含对CanvasItem的默认实现。已经建立了协议,允许你创建自己的画布。

💾 安装

要安装Graphas,只需使用pip

$ pip install gaphas

强烈建议使用虚拟环境

开发

在Linux上设置开发环境

$ sudo apt-get install -y python3-dev python3-gi python3-gi-cairo
    gir1.2-gtk-3.0 libgirepository1.0-dev libcairo2-dev
$ pip install poetry
$ poetry install

🔦 用法

API文档和教程可以在Read the Docs上找到。

♥ 贡献

感谢这些优秀的人(emoji key

Arjan Molenaar
Arjan Molenaar

💻 🐛 📖 👀 💬 🔌
Dan Yeaw
Dan Yeaw

💻 ⚠️ 👀 🐛 💬 🚇 📖
wrobell
wrobell

💻 ⚠️ 👀
Jean-Luc Stevens
Jean-Luc Stevens

💻 🐛 📖
Franz Steinmetz
弗朗茨·施泰因梅茨

💻 🐛
Adrian Boguszewski
阿德里安·博古谢夫斯基

💻
Rico Belder
里科·贝德勒

🐛 👀
Adam Boduch
亚当·博杜奇

🐛
Janet Jose
珍妮特·约瑟

📖

本项目遵循所有贡献者规范。欢迎任何形式的贡献!

  1. 查找开放问题或创建新问题以开始讨论功能想法或错误。存在一个仅初学者标签,用于标记适合不熟悉代码库的人的问题。
  2. 在GitHub上Fork存储库,以开始在主分支(或从其分支)进行更改。
  3. 编写一个测试,以证明错误已修复或功能按预期工作。
  4. 发送拉取请求,并一直烦扰维护者,直到它被合并并发布。:smile

参见贡献文件

版权

版权所有 © 阿兰·莫雷纳和丹·耶夫

许可协议为Apache License 2.0

摘要:您可以使用Gaphas做您喜欢的事情,只要包含必要的通知。此许可协议包含代码贡献者的专利许可。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

gaphas-4.1.1.tar.gz (62.2 kB 查看哈希值)

上传时间: 源代码

构建分布

gaphas-4.1.1-py3-none-any.whl (74.8 kB 查看哈希值)

上传时间: Python 3

由以下支持