(Created page with "{{Note|加入KDE开发有许多种方式,分类汇总如下: :'' 文档、翻译、开发、可用性、访问辅助、艺术作品、推广 ''不会编程?请访问KDE页...") |
(Updating to match new version of source page) |
||
| (48 intermediate revisions by 4 users not shown) | |||
| Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
| − | + | ||
此页面简要介绍 KDE 开发的不同方面,特别是编程相关的问题,'''KDE 项目欢迎所有愿意提供帮助的人加入。''' | 此页面简要介绍 KDE 开发的不同方面,特别是编程相关的问题,'''KDE 项目欢迎所有愿意提供帮助的人加入。''' | ||
{{Note|加入KDE开发有许多种方式,分类汇总如下: | {{Note|加入KDE开发有许多种方式,分类汇总如下: | ||
| − | : | + | : 文档、翻译、开发、可用性、访问辅助、艺术作品、推广 |
| − | + | : 不会编程?请访问KDE页面 [http://kde.org/community/getinvolved/ 如何参与] 获得其它贡献方式。参见: [[Contribute/Bugsquad|Bugsquad]]! | |
}} | }} | ||
| − | == | + | ==新闻和邮件来源== |
| − | + | KDE项目的大方向是由实际工作者决定的 - KDE将变成什么样并没有一个统一的计划。 | |
| − | + | 如果想了解当前发生的事,有许多信息来源: | |
| − | ; [http://www.kde.org/mailinglists/ | + | ; [http://www.kde.org/mailinglists/ 邮件列表] |
| − | : | + | : 可能是了解 KDE 开发进展的最好方式,归档位于 [http://lists.kde.org 这里] |
; [http://commitfilter.kde.org/ CommitFilter] | ; [http://commitfilter.kde.org/ CommitFilter] | ||
| − | : | + | : 获 KDE 中感兴趣领域的代码提交通知。 |
| − | ; [http://commit-digest.org/ KDE | + | ; [http://commit-digest.org/ KDE 提交摘要] |
| − | : | + | : 每周 KDE 项目源代码提交的摘要。 |
; [http://dot.kde.org/ The Dot] | ; [http://dot.kde.org/ The Dot] | ||
| − | : | + | : KDE 新闻站点。 |
| − | == | + | ==报告错误== |
| − | + | 最简单的贡献方式是使用[https://bugs.kde.org/ KDE Bug 管理系统] ('''Bugzilla''')[http://userbase.kde.org/Asking_Questions#Reporting_KDE_Bugs 报告使用KDE时遇到的问题] 。 | |
| − | + | 如果正在使用的应用程序崩溃,那么工具'''Dr Konqi'''将出现,并引导您报告遇到的崩溃。更多内容,请阅读[[Development/Tutorials/Debugging/How_to_create_useful_crash_reports|如何提交有用的崩溃报告]]。 | |
| − | == | + | ==开始编程== |
| − | + | 开始为 KDE 编程只需要找到一个需要修复地方,并改好它。您可能需要查看模块的概述,以找到需要的信息;修复了问题后,需要发送一个补丁。这样做了几次之后,可以申请 KDE 贡献帐户,之后就可以直接提交代码。 | |
| − | * [[Contribute/List of KDE Modules| | + | * [[Contribute/List of KDE Modules|模块概述]] |
| − | * [[Contribute/Send Patches| | + | * [[Contribute/Send Patches|发送补丁]] |
| − | * [[Contribute/Get a Contributor Account| | + | * [[Contribute/Get a Contributor Account|申请 KDE 贡献账户]] |
| − | * [[Contribute/First Steps with your KDE SVN Account| | + | * [[Contribute/First Steps with your KDE SVN Account|使用贡献账户之后的第一步]] |
=== C++ === | === C++ === | ||
| − | + | KDE大部分是用C++写成的。如果你不熟悉C++,你至少需要对它进行一些学习。有一些很好的关于C++的书,其中一本非常出色的教程叫做 [http://mindview.net/Books/TICPP/ThinkingInCPP2e.html Bruce Eckel的 "Thinking in C++"],你可以自由而免费地下载它,同样你也能将其打印成书面文档。在参与KDE之前,你不需要对它的所有东西都有个透彻的理解,但你至少需要懂得基本的语法和操作。 | |
=== Qt === | === Qt === | ||
| − | + | <span class="mw-translate-fuzzy"> | |
| + | 要想精通KDE编程,你应当对Qt toolkit有较好的理解。如果不熟悉Qt,应当学习[http://doc.qt.nokia.com/latest Qt 参考文件]中的相关指南。 | ||
| + | </span> | ||
| − | + | 如果你需要一个更有魅力的Qt介绍,或者希望了解一个不同角度的观点,那么你可能愿意阅读这份[http://www.apress.com/9781590598313 Qt 发展基金会 ]。 | |
| − | + | <span class="mw-translate-fuzzy"> | |
| + | 如果您偏好阅读传统书籍来学习 Qt,可以看看[http://qt.nokia.com/developer/books/ Qt 相关的书籍]。更多熟悉 Qt4 的建议可参考[http://doc.qt.nokia.com/latest/how-to-learn-qt.html 如何学习 Qt]。 | ||
| + | </span> | ||
=== KDE === | === KDE === | ||
| − | + | 一系列关于KDE技术的信息可以在[[Development/Tutorials|指南]]中查阅。注意,这些指南中的一部分仍然是针对KDE3的,所以它们只能被部分地应用。 | |
| + | |||
| + | 在[[Development/FAQs|FAQs]]中也能找到关于KDE编程的有用信息。这些信息对KDE4来说可能同样是有点过时了,然而其中的许多内容仍然适用,甚至适用是在KDE之外。 | ||
| + | |||
| + | 你同样可以阅读[[Development/Further Information#Books|KDE编码书籍]]。 | ||
| + | |||
| + | 最后,KDE同时发布了大量的类(API)文档,可以从[[Development/Tutorials/API Documentation|KDE API 参考手册]]访问。参考手册中还包含许多编写与更新类文档的有用链接。这些文档可以在本机自动生成或访问即时更新的[http://api.kde.org/ API 参考]. | ||
| + | |||
| + | 一个关于以上步骤的更详细的描述请参看[http://quality.kde.org/develop/howto/howtohack.php 编程指导]。 | ||
| + | |||
| + | ==== 上下文帮助:这是什么 ==== | ||
| + | |||
| + | 上下文帮助是与对话框和控件密不可分的,因为它们是上下文帮助的目标。实际上要编写上下文帮助,需要修改程序和编程工具。上下文帮助是控件的一个属性。在面向对象的编程中,属性可以有多个值并根据不同的属性值表现出不同的行为。在 Qt/KDE 编程中,使用的属性是 "whatsthis",数值是要显示的上下文帮助内容。 | ||
| + | |||
| + | 幸运的是,这项工作通常不是非常困难,因为有应付用户界面的好工具,更好的是,您不久后将在应付通常的用户界面时运用在这儿获得的知识。使用 Qt 框架(Qt 是KDE技术的基础),把代码与用户界面分离是有可能的。您在此有两种基本情况:用户界面写入程序的主体代码(通常为 .cpp 文件)或在 Qt Designer 文件(.ui 文件:这是一个 XML 文档)。第二种情况是最佳开始,因为它更易于工作。如果您没有安装 Qt Designer,您可以通过在您的发行版中安装 Qt 开发包或者 Qt Designer 包(如果您的发行版有更细致的包)。 | ||
| + | |||
| + | 在这里您可以找到一个详细指导对于使用 Qt Designer 编写 WhatsThis 并且直接在源代码工作:[http://bddf.ca/~aseigo/whatsthis_tutorial/ WhatsThis 教程],Aaron J. Seigo 撰写。 | ||
| + | |||
| + | == 参与除错和质量保障 == | ||
| + | |||
| + | KDE中包含许多应用程序,但并非每个程序都有一个维护者专门管理漏洞和从总体上帮忙将相互关联且可用的代码转换为精致的程序。 | ||
| − | + | 如果你有兴趣帮助KDE解决问题,但又不知从何处着手,成为一个KDE质保小组(the KDE Quality Team)的一员可能正是你所期望的——更多信息请查看[http://quality.kde.org 质保小组的网站]。注意,你不需要任何编程技能就可以参与进来。特别是 developers regularly 推动一个[http://community.kde.org/KDE/Junior_Jobs 简单任务项目]以鼓励新的贡献。 | |
| − | + | 当然,你能在不成为KDE质保小组成员的情况下参与除错——只需要在KDE [http://bugs.kde.org 漏洞跟踪系统]上创建一个你自己的账户,并且开始搜索/整理这些漏洞。再次强调,你并不必须拥有编程技能——那只是帮助程序员用一贯的手法在程序中复制漏洞而已。 | |
| − | + | [[Contribute/Bugsquad|Bug巡查人员]]尝试跟踪KDE软件中的漏洞,并且确保被确认的漏洞被开发者们注意到。在Bugsquad中你不需要任何的编程知识;事实上,如果你不会编程,这是一种回馈某些东西给KDE社群的良好方法。 | |
| − | [[ | + | |
| − | + | == 用户界面 == | |
| − | + | 用户界面是一个非常广泛的论题,并且非常主观,因为对于某些人而言是显然的东西对于其他人而言是荒谬的,反之亦然。因此,不要推测、争论清楚,开始您的合乎逻辑的步骤。您讨论它的主要工具是客观推理和良好的意识。 | |
| − | + | 执行一个快捷的用户界面分析是容易的,但是说服人们改变界面是困难的。一个好的、令人信服的分析如果从 KDE 指导、竞争的程序与操作系统分析、在很多书籍中能找到的通用原则、用户测试或个人(传闻)反馈中采用信息的话从它能获得许多东西。这是一个义务工作,并且即使所有人同意您,仍必须有人执行它。 | |
| − | + | [http://mail.kde.org/mailman/listinfo/kde-usability KDE 可用性邮件列表]是一个讨论您的想法的非常活跃与好的地方,他们的主页在 http://techbase.kde.org/Projects/Usability 。如果您就是一个可用性的专家,请查看 [http://www.openusability.org/ OpenUsability.org],一个把开源开发者与可用性专家聚集在一起的项目,并且与 KDE 正密切合作。 | |
| − | + | 一些指导文献包含在[http://developer.kde.org/documentation/standards/kde/style/basics/index.html KDE 用户界面指导(设计标准)]与[http://developer.kde.org/documentation/design/ui/index.html KDE 用户界面指导(设计原则)]。 | |
| − | + | 分析用户界面也许包括以下一些项目:检查在 KDE 程序中快捷键是否一致,确认对话框直接与用户期望的互动相关,并且寻找 KDE 软件的用户以观察他们如何进行通常的工作流程。 | |
| − | == | + | ==得到问题的答案== |
| − | + | <span class="mw-translate-fuzzy"> | |
| + | 如果您对 KDE 的开发产生疑问,您的选择几乎与普通用户完全一致,除开一些小的改动: | ||
<blockquote> | <blockquote> | ||
| − | :* ''' | + | :* '''阅读开发者 FAQ '''。许多普通开发者的问题已在[[Development/FAQs|KDE 开发者 FAQ]]中予以回答 |
| − | :* ''' | + | :* '''搜寻/浏览 KDE 网站'''。许多问题也已在 KDE 网站得到回答,并且文档也包含于其中。您可以在主页搜索所有 KDE 网站。此外,您可以浏览[http://techbase.kde.org KDE 技术基地网站(本站)]。并且如果可能的话,为了慈善帮助编辑它,并且如果有东西不清楚,使用谈话页面。 |
| − | :* ''' | + | :* '''搜索邮件列表'''。许多问题早已在 KDE 邮件列表中回答,尤其是列表 kde-devel、kde2-porting、kde-core-devel、kde-games-devel、kfm-devel 与 koffice-devel 。您可以在[http://lists.kde.org/ lists.kde.org] 中搜索它们。您应该一直先搜索答案再于邮件列表中提问。当您在邮件列表中提问时,您在给成千上万的人发邮件 -- 请仅在通过简单的搜索无法找到答案时这么做。 |
| − | :* ''' | + | :* '''搜索引擎'''。不要忘记您最爱的搜索引擎。 Google 是最好的搜索引擎之一。使用 Google 您也可以[http://groups.google.com/ 搜索]到一大批新闻组网站,这也是非常有用的,尤其对于通用编程与 gcc 相关的问题。 |
| + | </span> | ||
| − | :* ''' | + | :* '''阅读源代码'''。[http://websvn.kde.org websvn.kde.org ]与[https://projects.kde.org/ projects.kde.org ]可用于帮助浏览代码。 为也许您想处理的代码阅读一些提交日志与区别,它增加了角度。 |
| − | :* ''' | + | :* '''在 KDE 邮件列表询问'''。如果您仍然没有得到一个答案,尝试在上文列出的邮件列表中的一个提出疑问。 |
| − | :* | + | :* 有关核心开发或第三方开发的问题,除非您对 [http://konqueror.kde.org/ Konqueror] 、 [http://www.koffice.org/ KOffice] 、游戏或 Java 开发特别感兴趣,您的主要选择是 [mailto:kde-devel@kde.org kde-devel] [mailto:kde-devel-request@kde.org?subject=subscribe (subscribe)]。 |
| − | :* | + | :* 对于关于 Konqueror 开发的问题,您的主要选择是 [mailto:kfm-devel@kde.org kfm-devel] [mailto:kfm-devel@kde.org?subject=subscribe (subscribe)] |
| − | :* | + | :* 对于关于 KOffice 开发的问题,您的主要选择是 [mailto:koffice-devel@kde.org koffice-devel] [mailto:koffice-devel-request@kde.org?subject=subscribe (subscribe)] |
| − | :* | + | :* 对于关于游戏开发的问题,您的主要选择是 [mailto:kde-games-devel@kde.org kde-games-devel] [mailto:kde-games-devel-request@kde.org?subject=subscribe (subscribe)] |
| − | :* | + | :* 对于关于 [http://qt.nokia.com/ Qt 开发]的问题,请使用极好的 [http://lists.trolltech.com/qt-interest/ Qt 邮件列表]。 |
</blockquote> | </blockquote> | ||
| − | + | KDE 邮件列表的完整列表在 [http://www.kde.org/mailinglists/ 这儿]与[http://mail.kde.org/mailman/listinfo 这儿]。 | |
| − | [[Category:FAQs]] | + | [[Category:FAQs/zh-cn]] |
此页面简要介绍 KDE 开发的不同方面,特别是编程相关的问题,KDE 项目欢迎所有愿意提供帮助的人加入。
Contents |
KDE项目的大方向是由实际工作者决定的 - KDE将变成什么样并没有一个统一的计划。
如果想了解当前发生的事,有许多信息来源:
最简单的贡献方式是使用KDE Bug 管理系统 (Bugzilla)报告使用KDE时遇到的问题 。
如果正在使用的应用程序崩溃,那么工具Dr Konqi将出现,并引导您报告遇到的崩溃。更多内容,请阅读如何提交有用的崩溃报告。
开始为 KDE 编程只需要找到一个需要修复地方,并改好它。您可能需要查看模块的概述,以找到需要的信息;修复了问题后,需要发送一个补丁。这样做了几次之后,可以申请 KDE 贡献帐户,之后就可以直接提交代码。
KDE大部分是用C++写成的。如果你不熟悉C++,你至少需要对它进行一些学习。有一些很好的关于C++的书,其中一本非常出色的教程叫做 Bruce Eckel的 "Thinking in C++",你可以自由而免费地下载它,同样你也能将其打印成书面文档。在参与KDE之前,你不需要对它的所有东西都有个透彻的理解,但你至少需要懂得基本的语法和操作。
要想精通KDE编程,你应当对Qt toolkit有较好的理解。如果不熟悉Qt,应当学习Qt 参考文件中的相关指南。
如果你需要一个更有魅力的Qt介绍,或者希望了解一个不同角度的观点,那么你可能愿意阅读这份Qt 发展基金会 。
如果您偏好阅读传统书籍来学习 Qt,可以看看Qt 相关的书籍。更多熟悉 Qt4 的建议可参考如何学习 Qt。
一系列关于KDE技术的信息可以在指南中查阅。注意,这些指南中的一部分仍然是针对KDE3的,所以它们只能被部分地应用。
在FAQs中也能找到关于KDE编程的有用信息。这些信息对KDE4来说可能同样是有点过时了,然而其中的许多内容仍然适用,甚至适用是在KDE之外。
你同样可以阅读KDE编码书籍。
最后,KDE同时发布了大量的类(API)文档,可以从KDE API 参考手册访问。参考手册中还包含许多编写与更新类文档的有用链接。这些文档可以在本机自动生成或访问即时更新的API 参考.
一个关于以上步骤的更详细的描述请参看编程指导。
上下文帮助是与对话框和控件密不可分的,因为它们是上下文帮助的目标。实际上要编写上下文帮助,需要修改程序和编程工具。上下文帮助是控件的一个属性。在面向对象的编程中,属性可以有多个值并根据不同的属性值表现出不同的行为。在 Qt/KDE 编程中,使用的属性是 "whatsthis",数值是要显示的上下文帮助内容。
幸运的是,这项工作通常不是非常困难,因为有应付用户界面的好工具,更好的是,您不久后将在应付通常的用户界面时运用在这儿获得的知识。使用 Qt 框架(Qt 是KDE技术的基础),把代码与用户界面分离是有可能的。您在此有两种基本情况:用户界面写入程序的主体代码(通常为 .cpp 文件)或在 Qt Designer 文件(.ui 文件:这是一个 XML 文档)。第二种情况是最佳开始,因为它更易于工作。如果您没有安装 Qt Designer,您可以通过在您的发行版中安装 Qt 开发包或者 Qt Designer 包(如果您的发行版有更细致的包)。
在这里您可以找到一个详细指导对于使用 Qt Designer 编写 WhatsThis 并且直接在源代码工作:WhatsThis 教程,Aaron J. Seigo 撰写。
KDE中包含许多应用程序,但并非每个程序都有一个维护者专门管理漏洞和从总体上帮忙将相互关联且可用的代码转换为精致的程序。
如果你有兴趣帮助KDE解决问题,但又不知从何处着手,成为一个KDE质保小组(the KDE Quality Team)的一员可能正是你所期望的——更多信息请查看质保小组的网站。注意,你不需要任何编程技能就可以参与进来。特别是 developers regularly 推动一个简单任务项目以鼓励新的贡献。
当然,你能在不成为KDE质保小组成员的情况下参与除错——只需要在KDE 漏洞跟踪系统上创建一个你自己的账户,并且开始搜索/整理这些漏洞。再次强调,你并不必须拥有编程技能——那只是帮助程序员用一贯的手法在程序中复制漏洞而已。
Bug巡查人员尝试跟踪KDE软件中的漏洞,并且确保被确认的漏洞被开发者们注意到。在Bugsquad中你不需要任何的编程知识;事实上,如果你不会编程,这是一种回馈某些东西给KDE社群的良好方法。
用户界面是一个非常广泛的论题,并且非常主观,因为对于某些人而言是显然的东西对于其他人而言是荒谬的,反之亦然。因此,不要推测、争论清楚,开始您的合乎逻辑的步骤。您讨论它的主要工具是客观推理和良好的意识。
执行一个快捷的用户界面分析是容易的,但是说服人们改变界面是困难的。一个好的、令人信服的分析如果从 KDE 指导、竞争的程序与操作系统分析、在很多书籍中能找到的通用原则、用户测试或个人(传闻)反馈中采用信息的话从它能获得许多东西。这是一个义务工作,并且即使所有人同意您,仍必须有人执行它。
KDE 可用性邮件列表是一个讨论您的想法的非常活跃与好的地方,他们的主页在 http://techbase.kde.org/Projects/Usability 。如果您就是一个可用性的专家,请查看 OpenUsability.org,一个把开源开发者与可用性专家聚集在一起的项目,并且与 KDE 正密切合作。
一些指导文献包含在KDE 用户界面指导(设计标准)与KDE 用户界面指导(设计原则)。
分析用户界面也许包括以下一些项目:检查在 KDE 程序中快捷键是否一致,确认对话框直接与用户期望的互动相关,并且寻找 KDE 软件的用户以观察他们如何进行通常的工作流程。
如果您对 KDE 的开发产生疑问,您的选择几乎与普通用户完全一致,除开一些小的改动:
</span>
- 阅读开发者 FAQ 。许多普通开发者的问题已在KDE 开发者 FAQ中予以回答
- 搜寻/浏览 KDE 网站。许多问题也已在 KDE 网站得到回答,并且文档也包含于其中。您可以在主页搜索所有 KDE 网站。此外,您可以浏览KDE 技术基地网站(本站)。并且如果可能的话,为了慈善帮助编辑它,并且如果有东西不清楚,使用谈话页面。
- 搜索邮件列表。许多问题早已在 KDE 邮件列表中回答,尤其是列表 kde-devel、kde2-porting、kde-core-devel、kde-games-devel、kfm-devel 与 koffice-devel 。您可以在lists.kde.org 中搜索它们。您应该一直先搜索答案再于邮件列表中提问。当您在邮件列表中提问时,您在给成千上万的人发邮件 -- 请仅在通过简单的搜索无法找到答案时这么做。
- 搜索引擎。不要忘记您最爱的搜索引擎。 Google 是最好的搜索引擎之一。使用 Google 您也可以搜索到一大批新闻组网站,这也是非常有用的,尤其对于通用编程与 gcc 相关的问题。
- 阅读源代码。websvn.kde.org 与projects.kde.org 可用于帮助浏览代码。 为也许您想处理的代码阅读一些提交日志与区别,它增加了角度。
- 在 KDE 邮件列表询问。如果您仍然没有得到一个答案,尝试在上文列出的邮件列表中的一个提出疑问。
- 有关核心开发或第三方开发的问题,除非您对 Konqueror 、 KOffice 、游戏或 Java 开发特别感兴趣,您的主要选择是 kde-devel (subscribe)。
- 对于关于 Konqueror 开发的问题,您的主要选择是 kfm-devel (subscribe)
- 对于关于 KOffice 开发的问题,您的主要选择是 koffice-devel (subscribe)
- 对于关于游戏开发的问题,您的主要选择是 kde-games-devel (subscribe)
- 对于关于 Qt 开发的问题,请使用极好的 Qt 邮件列表。