帮酷LOGO
  • 显示原文与译文双语对照的内容
A general-purpose, circular node graph GUI using Qt

  • 源代码名称:ZodiacGraph
  • 源代码网址:http://www.github.com/clemenssielaff/ZodiacGraph
  • ZodiacGraph源代码文档
  • ZodiacGraph源代码下载
  • Git URL:
    git://www.github.com/clemenssielaff/ZodiacGraph.git
  • Git Clone代码到本地:
    git clone http://www.github.com/clemenssielaff/ZodiacGraph
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/clemenssielaff/ZodiacGraph
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
  • ZodiacGraph Teaser Video 是一个通用的,使用Qt的循环 node 图形 GUI

    ZodiacGraph是一个 node 图形用户界面 MODULE,具有独特的视觉和概念设计。 它是用现代 C++ 编写的,使用C++11特性,位于Qt框架之上。 源代码是在MIT许可证下发布的。

    这个存储库包含嵌入在展示应用程序中的ZodiacGraph,从用户角度演示UI以及使用你自己项目的代码。
    完整的ZodiacGraph MODULE 包含在"ZodiacGraph"子文件夹中,并嵌套在"十二生肖"命名空间中。 这里文件夹外的代码是展示应用程序的一部分,仅提供演示目的。

    ZodiacGraph是一个纯用户用户界面,它本身不包含任何业务逻辑。 因此,它应该适合大多数需要 node 图形的用例,比如 GUI 。 然而,为了充分发挥它的潜力,展示程序包含两个控制器类,它们将 node 图形UI元素连接到应用程序的其余部分。

    安装

    在 Windows 和 Linux ( Ubuntu ) 上用 Qt 5.4测试这个存储库中的代码。 它的他配置应该工作--请告诉我如果你的系统有任何错误。

    使用qt创建者

    这应该很简单。
    拉 repo,打开QtCreator并在QtCreator中打开项目文件" zodiacgraph_showcase.pro"。 配置构建目录后,单击play按钮,在几秒钟后显示应用程序应该打开。

    使用 qmake

    既然构建ZodiacGraph需要 Qt,为什么不使用优秀的qmake?
    在 Windows 上,打开 Qt 命令行,确保所有Qt库都可以用,调用 vcvarsall.bat 并定义目标机器类型( 32位或者 64位) 和最终的ZodiacGraph repo 。 然后简单地运行:

    qmake
    nmake release
    releaseZodiacGraph_Showcase.exe
    文档

    "zodiacgraph"子文件夹中的所有代码都有完整的文档。 要生成 ZodiacGraph html文档,请使用提供的doxyfile或者访问: http://www.clemens-sielaff.com/zodiacgraph-doc/

    集成到你自己的项目中。

    查找 below 关于如何使用 public 接口的简短介绍。 对于完整的示例实现,请看一下展示应用程序。 它演示了如何将ZodiacGraph集成到一个成熟的3rd 方Qt应用程序中。

    例如在MainWidget的构造函数中,创建 zodiac::Scene 和 zodiac::View:

    zodiac::Scene* zodiacScene = new zodiac::Scene(this);
    zodiac::View* zodiacView = new zodiac::View(this);
    zodiacView->setScene(zodiacScene);

    要创建一个 zodiac::,它将充当业务逻辑和 ZodiacGraph UI之间的主接口:

    zodiac::SceneHandle sceneHandle = zodiac::SceneHandle(zodiacScene);

    SceneHandes,NodeHandles和PlugHandles分别是一个指向指针的细分包装:: 场景,zodiac::Node 和 zodiac::Plug 。 在保持用户不处于不一致状态的情况下,他们只公开高级功能。 它们也不表示指向的对象的所有权,我们将它的留给Qt和ZodiacGraph内部逻辑。 这意味着,你可以自由地创建。复制。存储和 delete 句柄,而不影响数据。
    所有的句柄都连接到 qobject:: 已经损坏的对象的( ) -signal,一旦引用对象被破坏,就会变成无效。 对无效句柄调用函数将在调试生成中引发Q_ASSERT错误,在发布版本中不执行任何操作。
    请参见关于在本节末尾使用句柄的注意事项,关于多线程UI环境中句柄的使用。

    接下来,使用sceneHandle在场景中创建两个节点:

    zodiac::NodeHandle fooNode = sceneHandle.createNode("Foo");
    zodiac::NodeHandle barNode = sceneHandle.createNode("Bar");

    然后,通过 NodeHandles,为每个 node --一个输入一个插头,另一个输出:

    zodiac::PlugHandle outPlug = fooNode.createOutgoingPlug("fooOut");
    zodiac::PlugHandle inPlug = barNode.createIncomingPlug("barIn");

    最后,连接两个插头:

    outPlug.connectPlug(inPlug);

    这就是它你刚刚创建了一个简单的node 图,由两个节点组成,每个节点和两个。
    你可以在文档中找到 zodiac:: scenehandle 。zodiac::NodeHandle 和 zodiac::PlugHandle 类的所有其他功能。

    注意关于句柄的用法:
    当当前的句柄实现在一般情况下工作时,它远远不是假的证明。 如果你在不需要调用 isValid ( )的情况下对自己的代码进行组织,那么就应该冲突,因为你知道哪些句柄在什么时候是有效的,什么时候失效。 如果multi线程在多线程环境中使用句柄,在销毁的( ) -signal可能导致内部对象被破坏之前,我必须假设( 尽管我从未遇到过这个问题) 会受到竞争条件的影响。
    使用弱引用和智能指针的替代方法将与当前使用的所有权模型冲突: 我现在已经修改了架构,因为这对我来说是一个没有问题的问题,我觉得保存这个问题是为了将来的版本 2.0.

    捐赠

    ZodiacGraph是活动开发中较大应用程序的独立用户界面 MODULE 。 因这里,我希望代码能够保持活动并定期更新,以便在一定的时间内进行更新。

    欢迎通过拉请求进行捐赠,并鼓励 ! 没有正式的指南,但是请尝试与现有代码一致,并确保更新并为你的更改创建文档。

    如果遇到 Bug 或者任何 missing/outdated/wrong 文档,请在问题部分中报告。

    ( 除了可能没有的未来功能),请参见下面的内容
    • node 颜色
      你已经可以改变ZodiacGraph的全局外观。 第一步是添加给单个节点或者节点组分配颜色的能力。
    • node 组
      将节点的子网络合并到一个新的node 中,该将松散的端作为输入和输出。
    • 触摸导航
      版本 1.0.0已经包含基本的触摸处理,但我没有必要的硬件来部署( 测试) 一个严重的触摸接口应用程序。
    • node 核心符号
      除了 node 颜色和标题() 之外,还应该能够将 icon 分配给 node,以便在图中理解它的含义。
    • 进度动画
      当 node 描述的进程具有可以度量的进度和已经定义的结束时,可选特性。 在这种情况下,所有出口的箭头可以以从他们的传出插头向上移动,以观察图中的进度。
    免责声明

    现在已经经是 2017年了,我还没有在项目上做过大量的工作,所以我认为很可以能不会任何时间实现。 为了让它真正开放源码,我在MIT许可下发布这个项目,现在就把它放在这里。 如果你发现ZodiacGraph有帮助或者只是很高兴看到,我总是乐于听到反馈- 尤其是当你在自己的项目中使用它时。

    这么长,-Clemens




    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语