迷你教程:为肉桂创建小程序

我们将为创建一个简单的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,并同时为其提供其属性和功能。/ / Const GLib = imports.gi.GLib; / * 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小部件。* / Function MyApplet(orientation){this._init(orientation); }

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编写的可执行文件,在这种情况下,我们采用OpenBox中使用的myGtkMenu菜单。

这是一个自执行菜单。

梅特克

下载教程和示例


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  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.   霍诺万

    找不到文件因违反版权而被停用。

    我的意思是,如果您在那里有,可以再次上传吗?

    谢谢。