迷你教程:為肉桂創建小程序

我們將為創建一個簡單的applet 肉桂。 首先,我們必須知道 肉桂 提供不同類型的小程序:

  • 文本小程序 (在面板上顯示標籤)
  • 圖標小程序 (在面板上顯示一個圖標)
  • 文本圖標小程序 (在面板上同時顯示圖標和標籤)
  • 小程序 (對於鐵桿開發人員,他們會顯示一個空框,您可以自己填寫)

在本教程中,我們只想在面板上顯示一個圖標,因此我們將使用“ IconApplet”。 為了將我們的小程序編程為 肉桂或地精 我們需要了解和了解一些有關Javascript編程的知識

我們代碼的位置。

首先,讓我們看看文件的位置。 我們的小程序的位置在以下地址中給出:

/.local/share/cinnamon/applets/usr/share/cinnamon/applets

肉桂小程序

組成Applet的文件。

肉桂_Applet2

我們繼續定義applet.js

代號

小程序.js

現在讓我們來看一下 小程序.js 並解釋每個句子:

applet.js代碼開始

小程序代碼

JavaScript代碼

讓我們看看我們之前代碼的每個句子

const Lang = imports.lang; / /我們調用Gtk和Lang庫,它們是任何GNOME應用程序的基本組成部分,它們允許我們創建窗口,小部件並鏈接它們。 / /我們調用Applet庫,該庫允許我們為Cinnamon和Gnome創建一個applet,並同時為其提供其屬性和功能。 / * GLib是一個幫助程序庫,它允許我們在GNOME中執行操作,例如說hellognome.html文件在哪裡,它是負責信號的庫。* / Const Gettext = imports.gettext.domain('cinnamon -applets'); const _ = Gettext.gettext; // Gettext庫,使我們能夠導入Cinnamon桌面的特徵。 const PopupMenu = imports.ui.popupMenu; / * PopupMenu是一個使用菜單管理器的庫,它使我們能夠調用通常在applet中使用的popup-menu小部件。* /函數MyApplet(方向){this._init(方向); }

applet的構造函數在下面定義,讓我們看一下Class或Class:

gjs類

我們繼續每個句子的定義

MyApplet.prototype = {__proto__:Applet.IconApplet.prototype,//我們定義我們的Class或Class _init:函數(方向){Applet.IconApplet.prototype._init.call(此方向); / *我們通過肉桂設置方向。 我們設置小程序的面板是在頂部還是在底部(這會影響小程序菜單的方向。)* /嘗試{//做某事}捕獲(e){//如果發生錯誤,會發生什麼} / *我們使用try / catch來捕獲applet中可能發生的任何錯誤,並確保將它們寫入全局錯誤日誌中。 這樣,如果出現問題,您可以在Looking Glass中看到錯誤:按Alt F2,鍵入“ lg”,然後單擊“錯誤”選項卡。* / This.menuManager = new PopupMenu.PopupMenuManager(this); //創建彈出菜單並設置菜單管理器this.menu = new Applet.AppletPopupMenu(this,方向); //我們創建一個菜單。 this.menuManager.addMenu(this.menu); //我們將菜單添加到彈出菜單。 this.makeMenu(); // menuitem makeMenu,我們創建一個名為makeMenu的菜單項。 this.buildContextMenu(); // buildContextMenu,我們創建一個名為buildContextMenu的菜單項。 this.set_applet_icon_name(“文件夾”); / *我們創建小程序,這種情況是唯一的,選擇的圖標是文件夾或文件夾,如果需要,我們也可以建立文本小程序。

例如,將“文件夾”的名稱更改為“ terminal”,“ docky”以建立新名稱,請參見地址中的Gnome或Cinnamon圖標或任何其他圖標主題的名稱。

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip(_(“單擊此處殺死一個窗口”)); //捕獲以捕獲我們的applet中可能發生的任何錯誤。 catch(e){global.logError(e); } makeMenu:function(){this.menu.addMenuItem(new PopupMenu.PopupMenuItem(“ Test Message”,{active:true}));; },/ *我們定義makeMenu菜單項的名稱及其特徵。 在這種情況下,標籤為“測試消息”。我們將定義{reactive:true},我們確定當指針通過true越過menuitem時,如果它為false,則菜單項的背景將發生變化。* / BuildContextMenu:function (){this.menu .addMenuItem(new PopupMenu.PopupMenuItem(“ show”,{active:true}));},//我們定義makeMenu菜單項的名稱及其特徵。在這種情況下,標籤為“ show “。on_applet_clicked:function(event){this.menu.toggle();} //小程序發出的信號,以調用彈出菜單功能main(元數據,方向){let myApplet = new MyApplet(orientation);返回myApplet;} / *最後,我們只需要添加一個“ main”函數,該函數可能在每個applet中都是相同的,因此將創建一個applet實例並返回給Cinnamon。* / //我們關閉循環返回myApplet;

我們繼續定義metadata.json

LP0ol8b

截圖-140314-21:11:34

“ last-edited”:“ 1331990905”,//上一版。 “ description”:“單擊小程序以顯示自定義的個人定義的gtk菜單”,//小程序描述。 “ icon”:“ docky”,//用於applet描述的圖標。 例如,將“ docky”的名稱更改為“ terminal”,“ folder”。 “ uuid”:“黑色” //包含我們的meta.json文件的文件夾“ name”:“自定義gtk菜單” // Applet名稱。

注意: 要設置新名稱,請參閱Gnome或Cinnamon圖標的名稱或任何其他圖標主題,請轉到文件系統地址。

/usr/share/icons

創建的小程序的圖像

  K

Qt,Gtk,Vala和其他語言用於為肉桂或Gnome創建小程序

讓我們看看肉桂的小程序的位置

我們的小程序的位置在以下地址中給出:

/.local/share/cinnamon/applets

/usr/share/cinnamon/applets

書呆子

小程序的組成

測試

我們繼續定義applet.js 

代號

小程序.js

啟動applet.js代碼

截圖-140314-21:30:48

applet.js結束

現在,讓我們繼續查看applet.js代碼並解釋其語句。

編寫的代碼與之前用Javascript編寫的示例幾乎相同。
只有信號已更改,這將稱為我們的自動可執行文件。

on_applet_clicked:函數(事件){GLib.spawn_command_line_async(GLib.get_home_dir()+'/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }

我們的自動可執行程序可以用Qt,Gtk,Gtkmm,wxWidget,Vala等編寫。 可以創建可執行文件的語言我們的自動可執行文件稱為Menu,它位於Qtmenu文件夾中。

測試

我們還可以使用其他具有Gtk綁定的編程語言,例如PyGTK,Ruby Gtk,Perl Gtk等。 可以使用腳本來執行以這些語言編寫的代碼。 調用程序,根據我們的需求創建彈出菜單和彈出窗口的原理始終相同。

讓我們看看用Qt編寫的自動可執行代碼

qt

我們繼續定義metadata.json

LP0ol8b

蒙戈

編寫代碼的方式與前面的示例相同

用Qt創建的Applet圖像

什麼

使用Gtk 3.10創建的Applet圖像

這是使用使用Gtk編寫的可執行文件的applet的一個小示例,在這種情況下,我們採用OpenBox中使用的myGtkMenu菜單。

這是一個自執行菜單。

梅特克

下載教程和示例


12條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   艾奧里亞 他說:

    有趣的文章...

    1.    馬里亞諾高迪克斯 他說:

      謝謝 。 我的意思是我們每天都學一點點。

  2.   禮品 他說:

    很好,我喜歡,我一直想知道這些小程序是如何製成的

  3.   天使Araya 他說:

    小修正。 如文中所述,Gettext並不是Cinnamon所特有的,它是一個可以從模板進行自動翻譯的庫。

  4.   MSX 他說:

    很好的教程以及所有重要的內容,但您沒有把它放進去:鏈接到牆紙?

    1.    馬里亞諾高迪克斯 他說:

      下載Linux Mint 16 Petra壁紙。
      該程序包稱為mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra

  5.   特斯拉 他說:

    非常有趣的文章。 事實是,我一直想知道這些小程序是如何創建的。 也許我被鼓勵為MPD或類似的東西創建一個迷你播放器applet。

    感謝分享!

  6.   馬蒂亞斯 他說:

    太好了,我只是想知道如何修改肉桂nm-applet(網絡管理器),以便當我無法訪問互聯網時(我有wifi卡)它可以更改顏色,這有助於我調整方向。一點點。

  7.   馬蒂亞斯巴特羅17 他說:

    好吧,瑪麗安,我不知道你在這裡發布。 問候。

    1.    馬里亞諾高迪克斯 他說:

      當您走路時,Matute…..我總是在這些地方走動。 乾杯

  8.   洛賓博 他說:

    好文章。

  9.   霍諾萬 他說:

    找不到文件因違反版權而被停用。

    我的意思是,如果您在那裡有,可以再次上傳嗎?

    謝謝。