Mes sukursime paprastą programėlę Cinamonas. Norėdami pradėti, turime tai žinoti Cinamonas siūlo įvairių tipų programėles:
- „TextApplet“ (skydelyje rodoma etiketė)
- „IconApplet“ (skydelyje rodoma piktograma)
- „TextIconApplet“ (skydelyje nurodant ir piktogramą, ir etiketę)
- Programėlė (sunkiems kūrėjams, rodantiems tuščią langelį, kurį galite užpildyti patys)
Šioje pamokoje tiesiog norime rodyti piktogramą skydelyje, todėl naudosime „IconApplet“. Norėdami užprogramuoti mūsų programėlę Cinamonas arba Gnome mes turime žinoti ir išmanyti programavimą „Javascript“
Mūsų kodo vieta.
Pirmiausia pažiūrėkime mūsų failo vietą. Mūsų programėlės vieta nurodoma šiais adresais:
/.local/share/cinnamon/applets
, /usr/share/cinnamon/applets
Failai, kurie sudaro mūsų programėlę.
Mes toliau apibrėžiame applet.js
Dabar pereikime prie kodo applet.js ir paaiškinkite kiekvieną jo sakinį:
„applet.js“ kodo pradžia
Pažiūrėkime kiekvieną iš mūsų ankstesnio kodo sakinių
const Lang = importas.lang; / * Mes iškviečiame Gtk ir Lang bibliotekas, jos yra pagrindinė bet kurios GNOME programos dalis, jos leidžia mums kurti langus, valdiklius ir juos susieti. * / Const Applet = imports.ui.applet; / * Mes pasitelkiame „Applet“ biblioteką, kuri leidžia mums sukurti „Cinnamon“ ir „Gnome“ programėlę ir tuo pačiu suteikia mums jos savybes ir funkcijas. * / Const GLib = imports.gi.GLib; / * GLib yra pagalbinė biblioteka, ji leidžia mums atlikti veiksmus GNOME, pavyzdžiui, pasakyti, kur yra hellognome.html failas, tai yra biblioteka, atsakinga už signalus. * / Const Gettext = imports.gettext.domain ('cinamonas -appletai '); const _ = Gettext.gettext; // „Gettext“ biblioteka, leidžianti importuoti „Cinnamon“ darbalaukio ypatybes. const PopupMenu = importas.ui.popupMenu; / * „PopupMenu“ yra biblioteka, skirta naudoti meniu tvarkyklę, ji leidžia mums iškviesti iššokančio meniu valdiklį, paprastai naudojamą programėlėse. * / Funkcija „MyApplet“ (orientacija) {this._init (orientacija); }
Mūsų programėlės konstruktorius yra apibrėžtas žemiau, pažvelkime į mūsų klasę arba klasę:
Tęsiame kiekvieno sakinio apibrėžimą
MyApplet.prototype = {__proto__: Applet.IconApplet.prototype, // Mes apibrėžiame savo klasę arba Class _init: funkcija (orientacija) {Applet.IconApplet.prototype._init.call (tai, orientacija); / * Mes nustatome orientaciją per cinamoną. Nustatome, ar programėlės skydelis yra viršuje, ar apačioje (tai turi įtakos programėlių meniu orientacijai). * / Pabandykite {// Padaryti ką nors} Sugauti (e) {// Kas atsitiks, jei įvyktų klaida } / * Mes naudojame „try / catch“, kad užfiksuotume bet kokias klaidas, kurios gali atsirasti mūsų programėlėje, ir įsitikintume, kad jos įrašytos į visuotinį klaidų žurnalą. Tokiu būdu, jei kažkas negerai, „Glass“ galite pamatyti klaidą: paspauskite Alt F2, įveskite „lg“ ir spustelėkite skirtuką „klaidos“. * / This.menuManager = new PopupMenu.PopupMenuManager (this); // Sukurkite iššokantįjį meniu ir nustatykite meniu tvarkyklę this.menu = new Applet.AppletPopupMenu (tai, orientacija); // sukuriame meniu. this.menuManager.addMenu (tai.meniu); // Pridedame meniu prie iššokančiojo meniu. this.makeMenu (); // menuitem makeMenu, sukuriame menuitem, vadinamą makeMenu. this.buildContextMenu (); // buildContextMenu, sukuriame menuitemą pavadinimu buildContextMenu. this.set_applet_icon_name ("aplankas"); / * Kuriame programėlę, ši byla yra unikali, pasirinkta piktograma yra aplankas arba aplankas, taip pat galime sukurti teksto programėlę, jei norime. * /
Kaip pavyzdį pakeiskite „aplanko“ pavadinimą į „terminalą“, „doką“, kad nustatytumėte naujus vardus, pamatykite „Gnome“ arba „Cinnamon“ piktogramų pavadinimą ar bet kurią kitą piktogramos temą, eikite į adresą.
/usr/share/icons
this.set_applet_tooltip (_ ("Spustelėkite čia, kad užmuštumėte langą")); // Gaudykite, kad užfiksuotumėte klaidų, kurios gali atsirasti mūsų programėlėje. pagauti (e) {global.logError (e); } makeMenu: function () {this.menu.addMenuItem (naujas PopupMenu.PopupMenuItem ("Testo pranešimas", {reaktyvus: true})); }, / * Apibrėžiame „makeMenu“ meniu pavadinimą ir jo ypatybes. Šiuo atveju etiketė yra „Test Message“. Apibrėžsime {reaktyvus: tiesa} Nustatysime, kad menuitemo fonas pasikeis, kai rodyklė pereis per menuitemą per true, jei ji klaidinga, priešingai. * / BuildContextMenu: function () {this.menu .addMenuItem (new PopupMenu.PopupMenuItem ("show", {reactive: true}));}, // Apibrėžiame meniu makeMenu pavadinimą ir jo charakteristikas. Šiuo atveju etiketė yra "show ". on_applet_clicked: function (event) {this.menu.toggle ();} // Appleto skleidžiamas signalas, norint iškviesti iššokančiojo meniu funkciją main (metaduomenys, orientacija) {let myApplet = new MyApplet (orientation); return myApplet;} / * Galiausiai, mes tiesiog turime pridėti „pagrindinę“ funkciją, kuri tikriausiai bus ta pati kiekvienoje programėlėje, sukuriamas mūsų programėlės egzempliorius ir grąžinamas į cinamoną. * / // Uždarome ciklo grąžinimą myApplet;
Mes pradedame apibrėžti metadata.json
"last-edited": "1331990905", // Paskutinis leidimas. "description": "Norėdami pamatyti pasirinktinį asmeniškai apibrėžtą gtk meniu, spustelėkite ant programėlės", // Appleto aprašymas. „icon“: „docky“, // Programos aprašymui naudojamos piktogramos. Kaip pavyzdį pakeiskite „doko“ pavadinimą į „terminalas“, „aplankas“. "uuid": "black" // Aplankas, kuriame yra mūsų metadata.json failas "name": "Custom gtk menu" // Applet name.
dėmesį: Norėdami nustatyti naujus pavadinimus, pamatysite piktogramų „Gnome“ arba „Cinamonas“ pavadinimą ar bet kurią kitą piktogramos temą, eikite į failų sistemų adresą.
/usr/share/icons
Sukurtos programėlės vaizdas
„Qt“, „Gtk“, „Vala“ ir kitos kalbos naudojamos kuriant „Cinnamon“ ar „Gnome“ programėlę
Pažiūrėkime, kur yra mūsų cinamono programėlė
Mūsų programėlės vieta nurodoma šiais adresais:
/.local/share/cinnamon/applets
,
/usr/share/cinnamon/applets
Mūsų programėlės sudėtis
Mes toliau apibrėžiame applet.js
Paleidžiamas „applet.js“ kodas
Applet.js pabaiga
Dabar pažiūrėkime kodą applet.js ir paaiškinkime jo teiginius.
Parašytas kodas yra praktiškai toks pats kaip ankstesnis pavyzdys, parašytas naudojant „Javascript“.
Pakeistas tik signalas, kuris iškvies mūsų automatiškai vykdomąjį failą.
on_applet_clicked: funkcija (įvykis) {GLib.spawn_command_line_async (GLib.get_home_dir () + '/.local/share/cinnamon/applets/Qt4/Qtmenu/Menu'); }
Mūsų automatiškai vykdomąjį failą galima parašyti naudojant Qt, Gtk, Gtkmm, wxWidget, Vala ir kt. kalbos, kuriomis galima kurti savarankiškai vykdomus failus. Mūsų automatinis vykdomasis failas vadinamas „Menu“ ir yra aplanke „Qtmenu“.
Taip pat galime naudoti kitas programavimo kalbas, kurios turi Gtk susiejimą, pvz., PyGTK, Ruby Gtk, Perl Gtk ir kt. kurį galima naudoti naudojant scenarijų tomis kalbomis parašytam kodui vykdyti. Principas visada yra tas pats, kai reikia skambinti programoms, sukurti iššokantįjį meniu ir iššokantįjį langą pagal mūsų poreikius.
Pažiūrėkime, koks yra mūsų automatiškai vykdomo failo kodas, parašytas naudojant Qt
Mes pradedame apibrėžti metadata.json
Kodas rašomas taip pat, kaip ir ankstesnis pavyzdys
Programėlės vaizdas sukurtas naudojant „Qt“
Programėlės, sukurtos naudojant „Gtk 3.10“, vaizdas
Aš palieku jums nedidelį programėlės pavyzdį, kuriame naudojamas vykdomasis failas, parašytas Gtk, šiuo atveju mes pasirenkame „myGtkMenu“ meniu, naudojamą „OpenBox“.
Tai yra savarankiškai vykdomas meniu.
Atsisiųskite mokymo programą ir pavyzdžius
Įdomus straipsnis ...
Ačiū . Mano, kad mes po truputį mokomės kiekvieną dieną.
Labai gerai, man tai patinka, aš visada norėjau sužinoti, kaip buvo gaminami tokio tipo apletai
Maža korekcija. Kaip sakoma straipsnyje, „Gettext“ nėra specifinis cinamonui, tai yra biblioteka, leidžianti atlikti automatinius vertimus iš šablonų.
Labai gera pamoka ir visa kita, bet svarbiausia to nepadarė: nuoroda į tapetą?
Atsisiųskite „Linux Mint 16 Petra“ fono paveikslėlius.
Pakuotė vadinama mint-backgrounds-petra: http://packages.linuxmint.com/list.php?release=Petra
Labai įdomus straipsnis. Tiesa ta, kad visada galvojau, kaip buvo sukurtos šios programėlės. Galbūt mane skatina sukurti mini grotuvo programėlę MPD ar pan.
Dėkojame už dalijimąsi!
Puiku, aš tik suprantu, kaip modifikuoti cinamono nm programėlę (tinklo tvarkyklę), kad ji pakeistų spalvą, kai neturiu interneto prieigos (turiu „wifi“ kortelę), ir tai man padeda orientuotis truputi.
Na ten Marianai, aš nežinojau, kad tu čia skelbi. Pagarbiai.
Eidama Matute ... .. Aš visada vaikštau po šias dalis. linkėjimais
Geras straipsnis.
failas nerastas buvo išaktyvintas dėl autorių teisių pažeidimo.
Aš turiu omenyje tai, kad jei turite jį ten, ar galite jį įkelti dar kartą ???. Prašau.
Ačiū.