Krita开发文档翻译——Introduction to Hacking Krita

介绍如何为开源项目Krita做贡献

从KDE软件开始

KDE 是 Krita 的上级项目,KDE 社区维护着包括 Krita 在内的大量自由开源软件。(本句摘自https://krita.org/zh/get-involved-zh/overview-zh/)

Krita是一个极好的出发点,即使你对KDE软件的开发一无所知。我们非常欢迎您的加入。您将能够为了这个最酷、发展最快的开源绘画软件而工作。Krita还受益于模块化架构(a modular architecture)、KDE框架(KDE Frameworks)和Qt库(Qt libraries)的使用,这使得它更容易关注新特性,而不是重新发明轮子。它使编程变得有趣!要在Krita上工作,你必须使用c++和Qt,这实际上也是学习这两种语言的好方法!
自2014年的重大重组以来,KDE经历了巨大的变化。因此,开发KDE软件从来没有这么简单过。不幸的是,由于更改过于广泛,文档的更改根本没有跟上。如果你正踏上这段旅程,与他人分享你的发现并更新页面将是非常慷慨的。(=
(这段大部分直接有道翻译了)

开始

这里提供了一些链接能帮助你快速上手。

  1. 最重要的是项目仓库。在Github上有一个镜像,但是请注意,我们不使用Github进行开发,请不要在Github上创建“pull requests”或“file issues”。
  2. KDE开发人员wiki—KDE Techbase wiki为新开发人员提供了指导。在c++、git等基本工具和构建软件库等一般概念的基础上,Krita特有的一些特殊工具是Qt、CMake和KDE框架。通过查找一些讨论这些工具的文章并进行阅读,将会非常有帮助。这里有一些更有用的页面,帮助你快速上手:
  1. 配置您的开发环境并构建Krita!
  2. 在KDE的**bug跟踪系统( KDE’s Bugtracking system.)** 中找到一些需要修复的bug。通过修复错误来获得一些代码经验,熟悉开发过程而不会不知所措,这通常是个好主意。尽管我们并不反对在这个能抓痒的酷功能上工作!
  3. 如果您打算成为Krita的常客,即使只是为了bugreports和特性讨论,您首先要做的就是注册一个KDE身份帐户。这是您最通用的KDE代码库和网站登录。

构建Krita工程

搬运官方配图
首先,您所需要做的就是获得一份Krita的副本并构建它!这与在GitHub上构建一些东西并没有太大的区别……除了Krita与大多数软件相比是非常大的。有一些构建指南(build guilds)可以帮助您在各种平台上操作,但是Linux当然是最简单的。

在Krita代码库(CodeBase)的基础上工作

这里有一些相关的指南:

结构(Architecture)

Krita的代码库一直在变化,我们不怕大的重构,所以没有关于代码体系结构的最新文档。过去也写过一些,但很快就过时了,用处不大。如果你想了解代码是如何构造的,有一个相当最新的API指南。

集成开发环境(IDE)

我们使用较多的ide是Qt Creator、Emacs、KDevelop或vim。Qt Creator具有十分便捷的ctrl-k菜单,它允许您跳到类、行和任何地方。尽管如此,您不必使用Qt Creator进行构建!跳转到终端,执行“make”,检查发生了什么,然后跳转回IDE可能对你来说更容易。

资源(Resources)

学习代码最重要的一步是真正理解内存管理:指针、智能指针和指针运算。这是Java和c#开发人员需要多花一点时间来理解的。这里有一些资源,让你更熟悉c++和Qt:

调试(Debugging)

大问题和小问题都可能出现。对于小问题,可以使用Qt Creator中的调试器(运行外部应用程序)或向代码中添加qDebug消息。对于较为困难的问题,那么第一步应该是编写一个测试单元。一小段遵循固定模式的代码,测试错误的代码并显示出问题。这对解决问题和保持问题很有帮助。
当您运行Krita的调试构建时,您可能会惊讶于看到的调试输出如此之少。这是因为大多数Krita的调试信息在默认情况下是关闭的。调试语句被分组到诸如dbgUIdbgKrita等类别中。输出类别由环境变量QT_LOGGING_RULES控制。
Krita的调试类别列表包含在kis_debug.h和main.cc中。在QLoggingCategory的Qt参考中描述了环境变量的规则。
例如,要开启Krita的大多数debug输出,你可以执行以下指令:

export QT_LOGGING_RULES="krita*=true"; krita

如果您需要的话,使用*=true规则将生成一个消防栓。

三级目录

猜你喜欢

转载自blog.csdn.net/LINKUN787624675/article/details/107724944