Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 编写基于SVG的桌面应用程序有哪些选项?_User Interface_Unix_Svg_Desktop Application - Fatal编程技术网

User interface 编写基于SVG的桌面应用程序有哪些选项?

User interface 编写基于SVG的桌面应用程序有哪些选项?,user-interface,unix,svg,desktop-application,User Interface,Unix,Svg,Desktop Application,比如说,我想编写一个大量使用SVG的桌面应用程序。我可以选择哪些渲染引擎、GUI工具包、库等 我希望: 在Linux/Unix/Mac上平稳运行(到处都有抗锯齿功能) 开源 与标准SVG兼容(例如不透明度、嵌入式光栅图形) 可使用现代动态语言(Python、Ruby、Lisp等)访问 e、 从这个意义上讲,基于g.C的解决方案将是完美的 那么,我的选择是什么呢?我建议,Cairo是一个支持SVG文件输出的二维图形库 cairoapi提供了类似于的绘图操作符的操作 PostScript和PDF

比如说,我想编写一个大量使用SVG的桌面应用程序。我可以选择哪些渲染引擎、GUI工具包、库等

我希望:

  • 在Linux/Unix/Mac上平稳运行(到处都有抗锯齿功能)
  • 开源
  • 与标准SVG兼容(例如不透明度、嵌入式光栅图形)
  • 可使用现代动态语言(Python、Ruby、Lisp等)访问
    • e、 从这个意义上讲,基于g.C的解决方案将是完美的
  • 那么,我的选择是什么呢?

    我建议,Cairo是一个支持SVG文件输出的二维图形库

    cairoapi提供了类似于的绘图操作符的操作 PostScript和PDF。开罗的作业,包括冲程和填充 三次Bézier样条曲线,变换和合成半透明图像, 和抗锯齿文本渲染。所有绘图操作都可以进行 通过任何仿射变换(缩放、旋转、剪切、, )

    Cairo是作为一个用C编程语言编写的库实现的,但是绑定可用于几种不同的应用程序。其中包括,等等

    它还有几个工具包绑定。例如,他完全支持开罗

    也有和实验后端与。这些好处包括
    轻松地将PS-、PDF-、SVG等功能集成到OpenGL应用程序中(可能需要其他库)。

    Cairo是自由软件,可以重新分发和/或 根据GNU或一般公众的条款进行修改 许可证(LGPL)版本2.1或Mozilla公共许可证(MPL)版本 1.1由您选择


    考虑到Safari浏览器,它在Mac上运行平稳。您可以使用Raphael库编写应用程序

    该数据库显示拉斐尔语言,页面本身是纯矢量图形

    只是用你的方式看看它是否符合你的限制

    似乎是你最好的选择。您可以编写Ruby、Python或JavaScript应用程序,并使用HTML和CSS作为GUI。也有,但它不是开源的

    至于SVG,我找到的最好的库是。乍一看,您可能会觉得它是一个可视化库,但它可以用于任何类型的SVG工作。有人提到,它的优势在于它是跨浏览器的,但是它保留了一些SVG特性,如组
    标记,因为它必须在大多数IE版本中使用VML。

    。Batik是一个基于Java的SVG工具包,可以在任何Java存在的平台上呈现、生成、操作和转换SVG;来自台式机、小程序甚至手持设备。它利用了Java平台独立性的强大功能。它是桌面应用程序的理想选择。它还支持完全交互、链接、脚本和动画


    、、等是一些使用蜡染的项目。

    我不会直接使用cairo。相反,尝试wxWigets

    有一个非常有用的wxGraphicsContex类,它可以为您完成开罗的大部分封装和其他很酷的事情。包中甚至有一个SVG演示

    还有一个名为“wxcairo”的项目,它使用libsvg


    如果您对一个使用SVG作为本机格式的大型项目感兴趣,请看一下“Inkcape”。这是一个用GTK编写的非常好的插图程序。

    忽略所有关于拉斐尔的讨论,转而使用D3

    D3可以读取XML树,并根据您的需求轻松生成SVG代码。这意味着您可以以任何喜欢的方式呈现任何XML文档。这包括所有拉斐尔的作品,还有更多的作品


    在今天之前,我没有听说过开罗。但是,根据D3提供的结果,我甚至不会对此进行调查。

    回答这个问题可能太迟了,我建议使用开源Webkit

    这样做的好处如下:

    1--将获得对HTML的额外支持,
    2--与所有平台、Win、Mac、Linux、iOS、BB兼容
    3--在所有平台上,它将使用Cairo库来渲染图形,

    4--易于扩展和扩展以添加附加功能

    当你说可以使用现代动态语言(Python、Ruby、Lisp等)访问时,你是说你更喜欢用这些语言之一编写应用程序?@Halst你开发过基于svg的应用程序吗?不是开源的吗?他还希望unix和linux的可移植性。我只在浏览器中使用了d3。看起来你不是第一个遇到这种情况的人:(感谢@Kreek的快速回复。实际上,我刚刚删除了我的评论,因为我找到了一种方法让它工作。当它被清理后,我会将一篇博客文章链接到该SO文章。哦,太好了!总是这样,修复错误的保证方法是告诉别人,我的理论是,你的潜意识会启动,并在你打字的时候计算出来。)ng/喋喋不休:)