2014-03-19 118 views
4

我是GNOME桌面應用程序開發的初學者,因此我正在儘可能多地瞭解它。我已閱讀了針對JavaScript編寫的developer.gnome.org上的各種教程。我知道通過GObject Introspection,我可以在JavaScript中訪問C庫。如何使用C庫在JavaScript中創建GNOME應用程序

由於在桌面應用程序中使用JavaScript是新的,因此並不存在許多文檔。我想知道是否有任何方法可以知道我可以使用哪些函數以及訪問某些庫的參數。

例如,我可以創建在JavaScript中使用GTK一個按鈕:

this.mybutton = new GTK.Button({some code here}); 

我如何來認識一下,我可以用函數的名稱?有沒有什麼辦法可以讓我看出爲C編寫的文檔的JavaScript函數的名字?

對於我看過的一些圖書館,我看過爲this documentation編寫的JavaScript。任何幫助將不勝感激,以更多地瞭解GNOME應用程序開發。

+0

我的第一反應是說,如果你知道的JavaScript,你幾乎知道C,所以只使用C.對於誰試圖幫助旁邊的人,這裏有一個鏈接到JS中的hello世界,只是爲了表明javascript可以用於gnome應用程序:https://developer.gnome.org/gnome-devel-demos/3.7/helloWorld.js.html.en –

+1

@TomCerul yes i知道C但我想學習在JavaScript中創建應用程序,並想知道如何可以我在JavaScript中使用C庫。我如何知道我可以使用的函數名稱和參數? – prolific

回答

5

我同意你的看法:文檔在這個主題上很低。
大部分時間我都試圖從其他開發人員那裏找到已經寫好的代碼,並將其改爲擁有我想要的。
C文檔在http://developer.gnome.org上很完整,大部分時間你可以使用幾乎相同的方法。
我建議你看看這個網站:http://www.roojs.org/seed/gir-1.2-gtk-3.0/seed/
同時也爲了這個:http://zetcode.com/gui/javascriptgtktutorial/
祝你的JavaScript開發!

0

是的,您可以通過搜索GIR文件來將JavaScript函數映射到該C庫函數。每個庫應該有一個包含內省信息的XML文件。

one question的例子我問過。

grep -rn gdk_keymap_get_default /usr/share/gir-1.0/

/usr/share/gir-1.0/Gdk-2.0.gir:16781:    c:identifier="gdk_keymap_get_default" 
/usr/share/gir-1.0/Gdk-3.0.gir:15776:  <function name="get_default" c:identifier="gdk_keymap_get_default"> 

vim /usr/share/gir-1.0/Gdk-3.0.gir +15776

<class name="Keymap" 
      c:symbol-prefix="keymap" 
      c:type="GdkKeymap" 
      parent="GObject.Object" 
      glib:type-name="GdkKeymap" 
      glib:get-type="gdk_keymap_get_type"> 
     <doc xml:space="preserve">A #GdkKeymap defines the translation from keyboard state 
(including a hardware key, a modifier mask, and active keyboard group) 
to a keyval. This translation has two phases. The first phase is 
to determine the effective keyboard group and level for the keyboard 
state; the second phase is to look up the keycode/group/level triplet 
in the keymap and see what keyval it corresponds to.</doc> 
     <function name="get_default" c:identifier="gdk_keymap_get_default"> 
     <doc xml:space="preserve">Returns the #GdkKeymap attached to the default display.</doc> 
     <return-value transfer-ownership="none"> 
      <doc xml:space="preserve">the #GdkKeymap attached to the default display.</doc> 
      <type name="Keymap" c:type="GdkKeymap*"/> 
     </return-value> 
     </function> 
相關問題