Mini apmācība: Appletu izveide kanēlim

Mēs gatavojamies izveidot vienkāršu sīklietotni Kanēlis. Lai sāktu, mums tas ir jāzina Kanēlis piedāvā dažāda veida sīklietotnes:

  • Text Applet (uz paneļa parādot etiķeti)
  • IconApplet (panelī redzama ikona)
  • TextIconApplet (panelī norāda gan ikonu, gan etiķeti)
  • Applet (nopietniem izstrādātājiem, kuri parāda tukšu lodziņu, kuru varat aizpildīt pats)

Šajā apmācībā mēs vienkārši vēlamies panelī parādīt ikonu, tāpēc mēs izmantosim "IconApplet". Lai programmētu mūsu sīklietotni Kanēlis vai rūķis mums jāzina un jāzina daži Javascript programmējumi

Mūsu koda atrašanās vieta.

Pirmkārt, apskatīsim mūsu faila atrašanās vietu. Mūsu sīklietotnes atrašanās vieta ir norādīta uz šādām adresēm:

/.local/share/cinnamon/applets o lv /usr/share/cinnamon/applets

Kanēlis_Applet

Faili, kas veido mūsu sīklietotni.

Kanēlis_Applet2

Mēs turpinām definēt applet.js

kodu

applet.js

Tagad turpināsim skatīt kodu applet.js un izskaidrojiet katru tā teikumu:

applet.js koda sākums

sīklietotnes kods

javascript kods

Apskatīsim katru no mūsu iepriekšējā koda teikumiem

const Lang = imports.lang; / * Mēs izsaucam Gtk un Lang bibliotēkas, tās ir jebkuras GNOME lietojumprogrammas pamatdaļa, tās ļauj mums izveidot logus, logrīkus un tos sasaistīt. * / Const Applet = imports.ui.applet; / * Mēs izsaucam sīklietotņu bibliotēku, kas ļauj mums izveidot sīklietu kanēlim un Gnome un tajā pašā laikā dod mums tā īpašības un funkcijas. * / Const GLib = imports.gi.GLib; / * GLib ir palīga bibliotēka, tā ļauj mums darīt lietas GNOME, piemēram, pateikt, kur atrodas hellognome.html fails, tā ir bibliotēka, kas atbild par signāliem. * / Const Gettext = imports.gettext.domain ('kanēlis -apleti '); const _ = Gettext.gettext; // Gettext bibliotēka, kas ļauj mums importēt Cinnamon darbvirsmas īpašības. const PopupMenu = imports.ui.popupMenu; / * PopupMenu ir bibliotēka, kas izmanto izvēlņu pārvaldnieku, ļauj mums izsaukt uznirstošo izvēlņu logrīku, ko parasti izmanto sīklietotnēs. * / Funkcija MyApplet (orientācija) {this._init (orientācija); }

Mūsu sīklietotnes konstruktors ir definēts zemāk, apskatīsim mūsu klasi vai klasi:

gjs klase

Turpinām ar katra teikuma definīciju

MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Mēs definējam mūsu klasi vai Class _init: funkcija (orientācija) {Applet.IconApplet.prototype._init.call (tas, orientācija); / * Mēs iestatījām orientāciju caur Kanēli. Mēs iestatām, vai sīklietotnes panelis atrodas augšpusē vai apakšā (tas ietekmē sīklietotņu izvēlņu orientāciju). * / Izmēģiniet {// Darīt kaut ko} Noķert (e) {// Kas notiek, ja rodas kļūda } / * Mēs izmantojam try / catch, lai uztvertu visas kļūdas, kas var rasties mūsu sīklietotnē, un pārliecinātos, ka tās ir ierakstītas globālajā kļūdu žurnālā. Tādā veidā, ja kaut kas noiet greizi, jūs varat redzēt kļūdu stiklā Looking: nospiediet Alt F2, ierakstiet “lg” un noklikšķiniet uz cilnes “kļūdas”. * / This.menuManager = new PopupMenu.PopupMenuManager (this); // Izveidojiet uznirstošo izvēlni un iestatiet izvēlņu pārvaldnieku this.menu = new Applet.AppletPopupMenu (tas, orientācija); // mēs izveidojam izvēlni. this.menuManager.addMenu (this.menu); // Mēs pievienojam izvēlni uznirstošajai izvēlnei. this.makeMenu (); // menuitem makeMenu, mēs izveidojam menuitem ar nosaukumu makeMenu. this.buildContextMenu (); // buildContextMenu, mēs izveidojam izvēlni ar nosaukumu buildContextMenu. this.set_applet_icon_name ("mape"); / * Mēs izveidojam sīklietotni, šis gadījums ir unikāls, izvēlētā ikona ir mape vai mape, mēs arī varam izveidot teksta sīklietotni.

Kā piemēru nomainiet "mapes" nosaukumu uz "termināls", "dokstacija", lai izveidotu jaunus nosaukumus, skatiet Gnome vai Kanēļa ikonu nosaukumu vai jebkuru citu ikonu motīvu, dodieties uz adresi.

/usr/share/icons

Z7qwRdp

this.set_applet_tooltip (_ ("Noklikšķiniet šeit, lai nogalinātu logu")); // Catch, lai noķertu visas kļūdas, kas var rasties mūsu sīklietotnē. nozveja (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (jauns PopupMenu.PopupMenuItem ("Testa ziņojums", {reaktīvs: patiess})); }, / * Mēs definējam makeMenu izvēlnes nosaukumu un tā īpašības. Šajā gadījumā etiķete ir Testa ziņojums ". Mēs definēsim {reaktīvs: patiess}. Mēs noteiksim, ka menuitēma fons mainīsies, kad rādītājs iet cauri menuitēmam caur true, ja tas ir nepareizs, notiek pretējais. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Mēs definējam makeMenu izvēlnes nosaukumu un tā īpašības. Šajā gadījumā etiķete ir "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Apleta izstarotais signāls, lai izsauktu uznirstošās izvēlnes funkciju main (metadati, orientācija) {let myApplet = new MyApplet (orientācija); return myApplet;} / * Visbeidzot, mums vienkārši jāpievieno funkcija "main", kas, iespējams, katrā sīklietotnē ir vienāda, tiek izveidots mūsu sīklietotnes eksemplārs un tas tiek atgriezts kanēlī. myApplet;

Mēs turpinām definēt metadata.json

LP0ol8b

Ekrānuzņēmums - 140314 - 21:11:34

"last-edited": "1331990905", // Pēdējais izdevums. "description": "Noklikšķiniet uz sīklietotnes, lai parādītu pielāgotu personīgi definētu gtk izvēlni", // Sīklietotnes apraksts. "icon": "docky", // Ikonas, kas tiek izmantotas sīklietotnes aprakstā. Kā piemēru nomainiet "docky" nosaukumu uz "terminal", "folder". "uuid": "black" // Mape, kurā ir iekļauts mūsu metadata.json fails "name": "Custom gtk menu" // Applet name.

Piezīme: Lai iestatītu jaunus nosaukumus, skatiet Gnome vai Cinnamon ikonu nosaukumu vai jebkuru citu ikonu motīvu, dodieties uz failu sistēmu adresi.

/usr/share/icons

Izveidots sīklietotnes attēls

  lKxpdkS

Qt, Gtk, Vala un citas valodas, ko izmantoja, lai izveidotu sīklietu kanēlim vai rūķim

Apskatīsim mūsu kanēļa Cinnamon atrašanās vietu

Mūsu sīklietotnes atrašanās vieta ir norādīta uz šādām adresēm:

/.local/share/cinnamon/applets

o lv

/usr/share/cinnamon/applets

nūģi

Mūsu sīklietotnes sastāvs

beta

Mēs turpinām definēt applet.js 

kodu

applet.js

Tiek palaista programma applet.js

Ekrānuzņēmums - 140314 - 21:30:48

Applet.js beigas

Tagad turpināsim aplūkot kodu applet.js un izskaidrot tā paziņojumus.

Rakstītais kods ir praktiski tāds pats kā iepriekšējais piemērs, kas rakstīts ar Javascript.
Ir mainīts tikai signāls, kas izsauks mūsu automātiski izpildāmo failu.

on_applet_clicked: funkcija (notikums) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }

Mūsu automātiski izpildāmo failu var rakstīt ar Qt, Gtk, Gtkmm, wxWidget, Vala utt. valodas, ar kurām var izveidot pašizpildāmus failus. Mūsu automātiski izpildāmo failu sauc par Menu, un tas atrodas mapē Qtmenu.

beta

Mēs varam izmantot arī citas programmēšanas valodas, kurām ir saites Gtk, piemēram, PyGTK, Ruby Gtk, Perl Gtk utt. ko var izmantot, izmantojot skriptu, lai izpildītu šajās valodās rakstīto kodu. Princips vienmēr ir vienāds, lai izsauktu programmas, izveidotu uznirstošo izvēlni un uznirstošo logu atbilstoši mūsu vajadzībām.

Apskatīsim mūsu automātiski izpildāmā faila kodu, kas rakstīts ar Qt

qt

Mēs turpinām definēt metadata.json

LP0ol8b

Mongo

Kods tiek rakstīts tāpat kā iepriekšējais piemērs

Applet attēls, kas izveidots ar Qt

kas

Applet attēls, kas izveidots ar Gtk 3.10

Es jums atstāju nelielu sīklietotnes piemēru, kas izmanto izpildāmo failu, kas rakstīts Gtk, šajā gadījumā mēs izmantojam izvēlni myGtkMenu, kas izmantota OpenBox.

Tā ir pašizpildoša izvēlne.

iemācīties

Lejupielādējiet apmācību un piemērus


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   aiolia teica

    Interesants raksts ...

    1.    marianogaudix teica

      Paldies . Mans ir tas, ka mēs katru dienu mazliet mācāmies.

  2.   dāvana teica

    Ļoti labi, man tas patīk, es vienmēr gribēju uzzināt, kā tika izgatavoti šāda veida sīklietotnes

  3.   Eņģelis Araja teica

    Neliels labojums. Gettext nav nekas īpašs kanēlim, kā teikts rakstā, tā ir bibliotēka, kas ļauj veikt automātiskus tulkojumus un no veidnēm.

  4.   MSX teica

    Ļoti laba apmācība un viss tas, bet svarīgi, ko jūs to neievietojāt: saite uz fonu?

    1.    marianogaudix teica

      Lejupielādējiet Linux Mint 16 Petra tapetes.
      Iepakojumu sauc par piparmētru-fonu-petru: http://packages.linuxmint.com/list.php?release=Petra

  5.   Tesla teica

    Ļoti interesants raksts. Patiesība ir tāda, ka es vienmēr biju domājusi, kā tika izveidoti šie sīklietotnes. Varbūt mani mudina izveidot mini atskaņotāja sīklietotni MPD vai tamlīdzīgi.

    Paldies, ka dalījāties!

  6.   Matias teica

    Lieliski, es tikai izdomāju, kā modificēt kanēļa nm-sīklietotni (tīkla pārvaldnieku), lai tā mainītu krāsu, kad man nav piekļuves internetam (man ir wifi karte), un tas man palīdz nedaudz orientēties.

  7.   matiasbatero17 teica

    Nu tur Marian, es nezināju, ka jūs šeit ievietojat. Sveicieni.

    1.    marianogaudix teica

      Ejot, Matute ... .. Es vienmēr staigāju pa šīm daļām. Priekā

  8.   lolbimbo teica

    Labs raksts.

  9.   Honovan teica

    fails nav atrasts, tika deaktivizēts autortiesību pārkāpuma dēļ.

    Es domāju, ka, ja jums tas ir, vai varat to augšupielādēt vēlreiz ???. Lūdzu.

    Paldies.