[计算机软件及应用]Glade3+tutorial.doc

上传人:音乐台 文档编号:1991533 上传时间:2019-01-28 格式:DOC 页数:35 大小:88.86KB
返回 下载 相关 举报
[计算机软件及应用]Glade3+tutorial.doc_第1页
第1页 / 共35页
[计算机软件及应用]Glade3+tutorial.doc_第2页
第2页 / 共35页
[计算机软件及应用]Glade3+tutorial.doc_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[计算机软件及应用]Glade3+tutorial.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]Glade3+tutorial.doc(35页珍藏版)》请在三一文库上搜索。

1、GTK+ and Glade3 GUI Programming Tutorial -Part 12009年3月27日 23:38原文地址链接 Carrick翻译:Binn.X Wee博客链接: http:/ http:/ Quick Overview of GTK+ Concepts如果你没有任何 GTK+的编程经验,那么,对于我将要阐述的一些概念你也许会听着犯迷糊。不过,不用担心,在遇到这些概念的时候我会详细讲解,以便你能很好的阅读后面的内容。学完这一部分,对 GTK+的基本概念有所了解后,你也许就能有效的利用 Glade进行开发了。首先,GTK+并不是一门编程语言,而是一个开发工具套件,

2、或者说是一个开发库,用来进行跨平台GUI应用程序的开发,Linux,OSX, Windows或其它任何平台都能使用 GTK+。GTK+就好比Windows上的MFC和Win32 API,JAVA上的Swing和SWT,或者 Qt(KDE使用的Linux下GUI开发套件)。尽管GTK+是用纯C语言编写的,但是提供了其它各种语言的捆绑,允许程序员选择自己喜欢的开发语言来开发 GTK+应用程序,比如 C+, Python,Perl,PHP,Ruby等等。 GTK+开发套件基于三个主要的库: Glib,Pango,和 ATK,当然我们只需关心如何使用 GTK+即可, GTK+自己负责与这三个库打交道。

3、 Glib封装了大部分可移植的 C库函数(允许你的代码移植到 Windows和Linux上运行)。使用 C或C+时,将大量使用 Glib库函数,在我们用 C语言的具体实现过程中我会详细解释它们。高级语言如 Python和Ruby却不用担心Glib的使用,因为它们有自己的标准库提供了相应的功能。 GTK+及相关的库时按照面向对象设计思想来实现的,至于这时如何实现的现在并不重要,不同的编程语言有不同的实现方法,重要的是要知道 GTK+使用面向对象编程技术即可(是的,即使是 C实现的)。每一个GTK+的GUI元素都是由一个或许多个 “widgets”对象构成的。所有的widgets都从基类GtkWi

4、dget派生。例如,应用程序的主窗口是 GtkWindow类widget,窗口的工具条是 GtkToolbar类widget。一个 GtkWindow是一个 GtkWidget,但一个 GtkWidget兵不是一个 GtkWindow,子类 widgets继承自父类并扩展了父类的功能而成为一个新类,这就是标准的面向对象编程 OOP(Object Oriented Programming)思想。我们可以查阅GTK+参考手册找到widgets直接的继承关系。对于GtkWindow它的继承链看起来像这样: GObject +-GInitiallyUnowned +-GtkObject +-GtkWi

5、dget +-GtkContainer +-GtkBin +-GtkWindow因此,GtkWindow继承自 GtkBin, GtkBin继承自GtkContainer,等等。在第一个程序中,你不需要担心GtkWidget对象。各 widget之间的继承链之所以重要是因为当你查找某个 widget的函数,属性和信号时,你应该知道它的父类的函数,属性和信号也被此 widget继承了,可以直接使用。在第二部分讲述此实例的代码时,你能更清楚的认识到这一点。我们来看命名规则,命名规则带来的好处是非常便于使用。我们能够清楚的看出对象或函数是哪个库中的。以 Gtk开头的所有对象都是在 GTK+中定义的。

6、稍后我们会看到类似 GladeXML以Glade开头的是Libglade库对象或函数, GError以G开头的在GLib库定义。所有Widgets类都遵循标准camelcase命名习惯。所有操作函数都以下划线组合小写字母单词命名。如gtk_window_set_title()设置GtkWindow对象的标题属性。你需要的所有参考文档都可以从以下网站获得: library.gnome.org/devel/references, 分区 GTK+GNOME 的第 1 页不过,使用 Devhelp更方便,它甚至可以作为一个包来分发。 Devhelp可以浏览或搜索任何安装在你系统上的库的相关文档,当然前

7、提是你必须安装了这些文档。 Introduction to Glade3 Glade是一种开发 GTK+应用程序的 RAD(Rapid Application Development)工具。Glade自身就是一个 GTK+应用程序,因为它就是用 GTK+开发出来的 _ Glade用来简化 UI控件的设计和布局操作,进行快速开发。(译者注:当然,还不仅如此, Glade的设计初衷是把界面设计与应用程序代码相分离,界面的修改不会影响到应用程序代码)Glade设计的界面保存为 glade格式文件,它实际上是一种 XML文件。 Glade起先能根据创建的 GUI自动生成 C语言代码(你仍然能找到此类相

8、关的实例),后来可以利用 Libglade库在运行时动态创建界面,到了 Glade3,这些方法都不赞成使用了。这是因为, Glade需要做的唯一的事就是生成一个描述如何创建 GUI的glade文件。这给编程人员提供了更多的灵活性和弹性,避免了用户界面部分微小的改变就要重新编译整个应用程序,同时其语言无关性,几乎所有的编程语言都可以使用 Glade。 Glade3进行了重新设计,与之前的版本如 Glade2有巨大的改变。 2006年Glade3.0发布,你可以自由获取最新版本进行开发。软件包管理器如 aptitude等应该都有 Glade3的安装包,不过请注意:有个数字 3,因为glade是老版

9、本的 Glade2,Glade3或Glade3才是新版本。你也可以从 glade.gnome.org下载。 Getting Familiar with the Glade Interface启动Glade3,让我们来看看其主界面:左边的是 Palette就像是一个图形编辑程序,可以用它上面的 GtkWidgets来设计你的用户界面。中间部分(刚启动时是空白一片)是 Editor所见即所得的编辑器。在右边,上部是 Inspector,下部是 widget Properties。Inspector以树形显示当前创建的控件的布局,可以对控件进行选择。我们通过 Properties中各项内容来设置 w

10、idgets的属性,包括设置 widgets的信号回调函数。我们先创建一个顶层窗口并保存。点击 Palette上Toplevels分组框中的 GtkWindow图标,你会看到一个灰色窗口出现在 Glade中间的 Editor区域。这是 GtkWindow的工作区:分区 GTK+GNOME 的第 2 页窗口管理器(如 GNOME)会自动加上窗口标题,关闭按钮等,因此我们编辑时看不见。使用 Glade时,我们总是需要首先创建一个顶层窗口,典型的是创建一个 GtkWindow。以tutorial.glade文件名保存工程。这个文件是一个 XML文件,你可以在文本编辑器中打开它: GDK_POINTE

11、R_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK 你看,这就是一个简单的 XML文件,在 part2中我们会用 C语言调用 Libglade库来解析这个 XML文件并在运行时生成 UI。XML文件很容易用 Python应用程序或其它任何语言来解析。 Glade能在修改过程中自动保存到该文件。退出文本编辑器,回到 Glade我们继续。 Manipulating Widget Properties现在,Glade的Editor区显示的是一个空的 GtkWind

12、ow widget。我们来修改它的属性。在Properties面板,你会看到4个选项卡:General, Packing, Common, 和 Signals。我们先来谈谈前面的两个。 GtkWidgets有许多属性,这些属性定义了它们的功能和现实方式。如果你查阅一下 GTK+的开发参考文档,找到GtkWidget的Properties一项,列出了 GtkWindow的特有属性,这些在Glade属性面板的 General选项卡中,并且每个 widget的属性都会不一样。 widget属性名称是我们的应用程序直接获取的信息,把此 GtkWindow的name由window1修改为 window。

13、添加 GTK+ Text Editor到Window Title属性:分区 GTK+GNOME 的第 3 页我们稍后讲述 Packing,先来看看 Common,这里也包括属性设置,不过我们不能在开发人员参考文档中相应的 widget属性下看到它们,这是因为这些属性是继承自父类的属性。在参考文档的 Object Hierarchy里你将会看到 GtkWindow的父类 GtkContainer,连接到 GtkContainer属性项你将会看到一个 borderwidth,而在 Glade的属性面板中 GtkWindow继承了这个属性,你可以在 Common选项卡底部找到。我们以后会讲到 Gtk

14、Container,到这里,你应该清楚地知道对象继承链是多么重要了。因为大部分 widgets都从 GtkContainer继承,因此Glade把它的属性放到了 Common Tab下。参考文档的 Object Hierarchy,GtkContainer由GtkWidget继承。链接到 GtkWidget,你会看到其大部分的属性都列在了 Glade属性面板的 Common tab中。这些属性是所有 GTK+ widgets的公共属性,因为它们都继承自GtkWidget。 Specifying Callback Functions for Signals当某些对程序员有意义的事情发生时,控件对

15、象就发出一个信号 signal。这同Visual Basic中的events类似。当用户与界面进行交互时,界面元素发出相应的信号,程序员可以决定哪些信号需要捕获并连接到一个回调函数,完成某些任务。我们遇到的第一个信号,也是你在所有 GTK+应用程序中都会碰到的,是由 GtkObject发出的destroy信号。当一个 GtkObject对象销毁时就发出 destroy信号。这非常重要,因为当用户通过点击一个 widget顶部的X来关闭时, widget就销毁了。我们需要捕获这个信号并正确地退出我们的应用程序。在我们正式为此GUI写代码时做这件事是最好的,不过先得在Glade中指定响应 dest

16、roy信号的具体函数。切换到属性面板的 Signalstab,你将看到一个树形列表,显示了当前 widget及其父类对象的所有信号。这些与参考文档相符。在Handler列下点击灰色文本 并开始编辑它,从下拉列表框中选择on_window_destroy并按回车键。我们也可以键入任何名字,不过Glade提供的下拉框列出了通用的回调函数习惯命名。这个值如何使用得看程序员如何连接信号与回调函数。在这里,我们把 GtkWindow的destroy信号连接到 on_window_destroy函数名上。在 part2中我们会看到这一点的。分区 GTK+GNOME 的第 4 页到这里,我们有了一个 GUI

17、,可以编写代码显示我们的空窗口并在点击了关闭按钮时退出程序,你可以用 C, Python或任何其它语言。在此向导中,我将会充分地向你展示如何在编写任何代码前就用 Glade3建立起完整的 GUI.不过,为了满足你的好奇心,同时也让你了解到要实现这个 Glade用户接口,代码将会是多么的简单,请看代码: In C /* First run tutorial.glade through gtk-builder-convert with this command: gtk-builder-convert tutorial.glade tutorial.xml Then save this file

18、as main.c and compile it using this command (those are backticks, not single quotes): gcc -Wall -g -o tutorial main.c pkg-config -cflags -libs gtk+-2.0 -export-dynamic Then execute it using: ./tutorial */ #include void on_window_destroy (GtkObject *object, gpointer user_data) gtk_main_quit (); int m

19、ain (int argc, char *argv) GtkBuilder *builder; GtkWidget *window; gtk_init (&argc, &argv); builder = gtk_builder_new (); gtk_builder_add_from_file (builder, tutorial.xml, NULL); window = GTK_WIDGET (gtk_builder_get_object (builder, window); gtk_builder_connect_signals (builder, NULL); g_object_unre

20、f (G_OBJECT (builder); gtk_widget_show (window); gtk_main (); return 0;分区 GTK+GNOME 的第 5 页 In Python (note: you must set the visible property of window to Yes in the Common properties tab in Glade) #!/usr/bin/env python # First run tutorial.glade through gtk-builder-convert with this command: # gtk-

21、builder-convert tutorial.glade tutorial.xml # Then save this file as tutorial.py and make it executable using this command: # chmod a+x tutorial.py # And execute it: # ./tutorial.py import pygtk pygtk.require(2.0) import gtk class TutorialApp(object): def _init_(self): builder = gtk.Builder() builde

22、r.add_from_file(tutorial.xml) builder.connect_signals( on_window_destroy : gtk.main_quit ) self.window = builder.get_object(window) self.window.show() if _name_ = _main_: app = TutorialApp() gtk.main()在这部分,我将不会深入讲解这些实现代码,而把注意力放在 Glade3上。不过你已经看到了,实现一个 Glade创建的用户接口是多么的简单。 Adding Widgets to the GtkWind

23、ow查阅参考文档你会看到 GtkWindow继承自 GtkContainer。继承自 GtkContainer的widgets就是一个容器 widgets,也就是说它们可以容纳其它的 widgets。这是 GTK+编程的一个基本理念。如果你是一个 Windows程序员,你会期望着拖一堆的 widgets到窗口上,并摆放好它们的位置即可。不过 GTK+并不是这样工作地 有更好的理由。 GTK+的widgets可以装填到不同的容器,容器能装填到其它的容器中。有不同的装填属性设置可以控制 widgets在容器内如何分配空间,这样我们就可以创建出十分复杂的 GUI界面,而不用写任何代码来调整widge

24、ts大小尺寸和位置。因为GTK+为我们做了这一切。不过这对于一个 GTK+程序员新手来说也许是一个难以理解的概念,让我们用事实来说话! GtkWindow继承自 GtkBin容器, GtkBin是只能容纳一个子 widget的容器,但是我们的界面需要 3个元素:菜单条,文本编辑区,状态栏。因此,我们使用 GtkVBox,它可以容纳一个以上的子 widgets,并按照垂直排列。( GtkHBox按照水平排列子 widgets)注:这里的 子widgets是指容器中容纳的属于此容器的 widgets在Palette面板上Container分组框下的 GtkVBox图标上点击。此时 Select工具

25、条按钮弹起,并且鼠标在 Glade编辑区上显示为带有 +的 GtkVBox图标。在灰色的空窗口区点击,就放置了一个 GtkVBox,此时弹出一个对话框询问Number of items,设置GtkVBox的行数,我们选择3行。分区 GTK+GNOME 的第 6 页编辑区的 GtkWindow现在有三行。 Glade窗口顶部的 Select工具栏图标转换到按下状态,即允许你在编辑区选择任意的 widgets。接下来添加一个 GtkMenuBar到GtkVBox的最顶上一行, GtkMeneBar在Glade的Container分组框下分区 GTK+GNOME 的第 7 页现在,找到 Contai

26、ner下的GtkScrolledWindow并添加到中间一行。完成这一步后除了中间一行被选中状态外看不出有什么变化。这是因为 GtkScrolledWindow没有任何初始化可视元素。它仅仅是一个容器,当它容纳的子 widgets变得太大时它提供滚动条。我们的编辑器需要滚动条支持。点击Control and Display分组框下的 GtkTextView并添加到 GtkScrolledWindow上(中间一行)。分区 GTK+GNOME 的第 8 页最后,点击 Control and Display分组框下的 GtkStatusbar并添加到最底部一行。这就建好了我们文本编辑器的 UI布局。

27、在Inspector中你会看到 widgets的包容关系。分区 GTK+GNOME 的第 9 页在Inspector中选择 widgets是很方便的,因为当 widgets相互重叠时你在编辑区不能选择了。比如你不能在编辑区中点击 GtkScrolledWindow因为我们只能看到它包容的子 widgets,你只能在 Inspector中选择。之前我提到装填的概念对一个 GTK+程序员新手来说不好理解。因此,我将向你展示不同的装填方式是如何影响你的布局设计的。 How Packing Effects the Layout从上面的界面设计过程,你也许会惊叹 Glade如此的智能。它是如何知道我们不

28、想状态栏太高?如果你调整窗口大小,它又是如何知道应该让文本编辑框自动缩放来填充窗口变化的空间?哈哈, Glade靠猜的!它应用了默认设置,我们通常需要如此,不过不总是这样。了解装填的最好方式是试验各种不同的装填属性,观察 Glade如何响应。你应该了解的关于装填和空间分配: homogeneous:此属性设置,则告诉 GTK+为每个子 widgets分配同样大小的空间。 expand:子widgets的装填属性,确定在容器增长时,此子 widgets是否获得额外的空间。 fill:子widgets装填属性,确定子 widgets是否利用分配到的额外空间。来看默认装填属性, GtkScrolle

29、dWindow的expand=TRUE表示当其所在容器增长时它要获得空间分配,fill=TRUE表示它将扩充自己来利用额外空间。这是我们想要的效果。 Widget Property Value GtkVBox vbox1 homogeneous FALSE GtkMenuBar menubar1 expand FALSE fill TRUE GtkScrolledWindow scrolledwindow1 expand TRUE fill TRUE GtkStatusbar statusbar1 expand FALSE fill TRUE现在我们来看 homogeneous都干嘛了。在 I

30、nspector中选择 GtkVBox并设置其 Homogeneous=Yes,这表示vbox1将分配同样大小的空间给其包含的子 widgets。既然其 3个子widgets的fill=TRUE,那么它们将填满分配到的空间。分区 GTK+GNOME 的第 10 页现在设置 GtkScrolledWindow的Expand=Yes,Fill=NO。此时额外空间分配给 GtkScrolledWindow,但是它并不扩充自己来利用分配到的额外空间。我知道你认为这看起来很奇特,不过随着你深入了解 Glade,你将会清楚地知道装填属性是怎么工作的,并且你会惊叹为了改变 GUI各元素位置和尺寸竟然只需要做

31、如此少的工作就能完成。 Editing the Menu (or Toolbar) Glade3拥有一个新的菜单条和工具条编辑器,尽管我们的向导里不使用 GtkToolBar,不过它的处理与GtkMenuBar很相似。我们将利用 Glade3的菜单编辑器来删除不需要的菜单项并对需要使用的菜单项设置信号处理。你可以使用Glade的Inspector来删除,可以在 Glade的属性面板中设置信号处理,不过 Glade3的菜单编辑器更容易做这些工作。在编辑区或通过 Inspector选择GtkMenuBar,单击右键选择 Edit启动菜单编辑器。分区 GTK+GNOME 的第 11 页菜单编辑器包括

32、的属性设置很像 Glade主界面属性面板,而底部的信号设置与 Glade属性面板中的Signalstab很像。只不过菜单编辑器中左边是树形列表显示。可以很轻易地添加或删除菜单项。移除 _View菜单项。我们的向导中不使用这个菜单。对剩余的菜单项,我们需要重新命名,以便于在源代码中能清楚明了地引用它们。每个菜单项修改都一样,所以我只讲New,记住,所有这些菜单编辑器能做的工作在 Inspector和属性面板中也能完成。 Final Touches to the Main Window对于textview1, textview2这种命名的引用十分不利于在源代码中使用,因此需要重新修改以下 widg

33、ets的名称(记住,名称在属性面板的 Generaltab) 1 textview1改为text_view 2 statusbar1改为statusbar为了使其看上去更漂亮一些,我们为 GtkScrolledWindow增加阴影和边框 1在属性面板的 Generaltab中把scrolledwindow1的Shadow Type改为Etched in 2属性面板的 Commontab中把scrolledwindow1的Border Width改为1 3在General属性中把 text_view的Left Margin设为2 4在General属性中把 text_view的Right Mar

34、gin设为2 Getting Additional Help Using Glade对使用 Glade过程中的更多问题,可以询问 glade-users mailing list或 GTK+ Forums. What Next?在GTK+ and Glade3 GUI Programming Tutorial -Part 2中将选择一个确定的编程语言来实现我们刚刚创建的 GUI。分区 GTK+GNOME 的第 12 页GTK+ and Glade3 GUI Programming Tutorial -Part 22009年3月28日 20:35原文地址链接 Carrick翻译:Binn.X

35、Wee博客链接: http:/ Choosing a Programming Language for GTK+ Development在part1我们用 Glade设计了一个GTK+文本编辑器应用程序的图形用户界面(GUI),并创建了一个XML文件tutorial.glade这是一个描述 GUI的XML文件。在这一部分,我将讨论可以用来进行 GTK+开发的编程语言。本向导系列都将只包含 C编程和Python编程。 Which is the BEST Language?先放下操作系统不说。这个问题本身就是一个错误的问题,因为对于不同的人,在不同的时期,处于不同的环境,答案都是不一样的。每一种编

36、程语言都有它的有点也同时存在缺点。应该这样来问:什么语言最适合我现在开发的项目? Language Choice Considerations选择一门编程语言时最重要的一点是对其它的语言不抱任何成见。你可以选择 X语言来进行GTK+编程,后来又换用 Y语言因为你知道它更适合你的任务。而 GTK+的概念对不同的语言来说却都是一样的。 1经验水平你将在编程上花费的时间,热情投入的多少以及耐心程度等等是你选择一门编程语言最重要的因素。没有任何编程经验的人需要学习一门语言的基本概念,如语法和特性等,而一个经验丰富的编程人员可以通过比较来快速掌握一门新语言,并更多地关注语言的难点。此外如果你是一个 PH

37、P专家,那么用 PHP进行GTK+开发是最适合你的。也许你在大学学习过C+并打算用它。也许你一直用 Visual Basic但是打算尝试用 C。 2相关活动和社区支持 GTK+是用C语言开发的,并且提供了其它多种语言的绑定版本。各绑定语言的开发项目的进展情况是一个重要的因素。你想要选择一个最新发布版本的语言,并且修正了bug(我提到的所有语言都是最新的)。此外众多的使用者和大的社区也很重要,你可以从那获得更多的支持。使用某确定语言来开发 GTK+的人越多,可获取的信息就越多。 3有效率的程序员 vs有效率的编程易于编程开发,速度方面的效率,可以对底层进行访问控制,这些方面存在一个权衡。对大多数

38、程序来说,两个编程语言的效率常常被忽视,甚至一个程序员新手根本就不会注意到这一点。因此,对生产率的提高就成了决定性因素。例如,如果我需要写一个程序,允许我通过一个 GUI来与命令行交互,那么我会选择 Python或者Ruby。然而,如果我要开发一个复杂的,高性能的 IDE,我会选择C或者C+。事实上,你可以在一个工程中使用不同的开发语言。你可以用C活C+编写内存和处理器密集型实例,而用Python或者Ruby来开发其它的部分。 4语言魅力是的,对开发语言的表现形式和个人的感受也是一个因素。语言整体的开发流程如何对你更重要。这影响着你的思维方式。 A Look at Python vs. C分区

39、 GTK+GNOME 的第 13 页基于以上的标准,在我们的向导中,我将分别选择两种语言来讲解。我选择最适合以上标准的C和Python。它们都具有强大的开发团队和社区支持,并且在开发 Linux和GNOME中用的最多。此外,对于高效率和生产率来说,它们是两个极端。在接下来的部分,你可以分别尝试它们并自己做个比较。如果你没哟任何编程经验,或者仅有一点 Visual Basic或PHP的经验,我建议你看 Python。即使你有C,C+或者JAVA的经验,也许你还想学习一点 Python的只是,它是一门令人兴奋地现代编程语言,更多的乐趣,令人惊奇的易学易用。对于 Linux下RAD开发, Glade

40、 + Python是一个强组合。在 www.pygtk.org.上可以学习到更多 Python进行GTK+编程的绑定 PyGTK。如果你是一个经验丰富的程序员或者是一个学生,那么很值得你去学习 C或者C+进行 GTK+编程开发。学习 C语言的GTK+可以很轻松地转到其它语言上比如 Python。此外,你可以有更多选择加入已有的项目开发中。我个人是使用 C来开发大多数 GTK+项目的,尽管可能需要更多的时间。 Whats Next ?在part3,我将会谈到如何设置你的开发环境并分别用 C和Python来实现我们在part1中创建的Glade GUI。分区 GTK+GNOME 的第 14 页GT

41、K+ and Glade3 GUI Programming Tutorial -Part 32009年3月29日 13:43原文地址链接 Carrick翻译: Binn.X Wee博客链接:http:/ http:/ Writing a Basic Program to Implement the Glade File在这一部分,我将示范一个非常简单的程序,用来解析我们在 part1中用Glade3创建的 GUI文件tutorial.glade,并显示我们 GTK+文本编辑器的主窗口。我会先讨论 GTK+的一些概念然后分别以 C语言和 Python语言来给出实现代码。如果你选择其中之一,那么

42、你可以跳过另外一门语言的介绍部分。 Setting Up Your Development Environment为完成这部分向导的 GTK+编程,你需要一个文本编辑器,一个终端, GTK+开发库,以及Devhelp。Devhelp是开发人员的参考帮助。如果你是 Linux新手,那么有更多的选择等着你。并没有一个所谓标准的编辑器或者是 IDE,许多开发人员都仅仅使用自己喜欢的文本编辑器和终端。尽管也有一些功能齐全的 IDE可以选择,不过你应该首先使用比较简单的文本编辑器加上终端即可,以免被 IDE的特性和自动化功能弄迷糊,浪费不必要的时间。我使用 gedit,GNOME的默认文本编辑器。 gedit有一些有用的插件可以使用。我写了一个 Gedit Symbol Browser Plugin可以让你快速地跳转到源代码的函数定义。你需要的开发库取决于你使用 C还是使用 Python,对于不同的开发平台及发布平台会有很大不同,不过我会对此提供一些有用的信息。如果在安装开发包和发布产品时还出现问题的话,可以到 GTK+ Forums寻找答案。在Linux上,你通常可以使用分发包管理器获得你所需要的所有开

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1