Programming sa Vala at GTK +, naisip nating lahat kung paano gumawa ng isang application na nakasulat sa Vala at GTK + upang mai-save ang mga estado ng mga parameter ng laki ng window at iba pa? Kasama sila sa mga karaniwang kaso na ginagamit namin gschemas upang mai-save ang mga halagang ito (ang kilalang application na ito dconf-editor) na graphic na namamahala sa mga scheme na ito.
Ipinapakita ko sa iyo kung paano ito gawin sa mga simpleng hakbang at walang mga komplikasyon gamit ang Granite.Services.Settings class mula sa Granite library.
Ano ang kailangan natin?
Una kailangan naming magkaroon ng mga aklatan ng GTK +, Granite at Vala upang mai-compile ang aming code. Upang gawin ito sa Ubuntu / ElementaryOS ginagamit namin ang utos:
sudo apt-get install libgtk-3-dev libgranite-dev granite-demo valac
At kakailanganin din namin ang anumang text editor na sumusuporta sa Vala / GTK + syntax at XML tulad ng Scratch Text Editor (ElementaryOS default), GEdit, Sublime Text + Plugins, atbp.
Ang code
Narito ang Mga halimbawang mga file. Para sa mas mahusay na pag-unawa iniiwan ko ang code sa PASTE na may mga komento sa kanila:
Paliwanag
Ang file ng Schema, kung o kung dapat itong XML at tawaging ORG.APLICACION.GSCHEMA.XML. Iyon ay, kapwa ang ORG at GSCHEMA.XML ay dapat naroroon para makilala ito ng dconf bilang isang iskema. Bilang karagdagan, ang mga diagram na ito ay dapat kopyahin sa ruta:
/usr/share/glib-2.0/schemas/
at kailangan silang maiipon para sa DCONF na kunin sila, para dito isinasagawa namin ang utos:
sudo glib-compile-schemas /usr/share/glib-2.0/schemas/
Pag-iipon
Upang maipon ang aming programa kailangan naming ilunsad ang sumusunod na utos sa isang terminal:
valac --pkg gtk+-3.0 --pkg granite main.vala tutorial.vala settings.vala
At patakbuhin ang binary na may utos:
./main
Konklusyon
Ito ay isa sa mga pinakamahusay na pamamaraan upang mai-save ang estado ng aming APP sa GSCHEMA gamit ang GLIB. Anumang uri ng katanungan ay malugod kong sasagutin.
Narito ang isang screenshot ng aking Ubuntu at ang Halimbawa:
Magandang artikulo, ang ilang mga tutorial sa GTK sa C ++ ay hindi masama. Malaki ang pagbabago ng mga bagay, inirekomenda ng opisyal na site ng GTK ang mga libro mula noong 2002, nagkamali akong bilhin ito.
Ang DevHelp ay tumutulong sa higit sa anumang libro.
Pasensya na ang ibig kong sabihin ay C, hindi C ++. Kapag binubuksan ko ang mga codeblocks, palagi kong pinipili ang "Isang proyekto sa C ++", ngunit program ko sa C.
Mahusay na tagapagturo, nais kong malaman at alam kong hindi ito ang kaso, ngunit sa totoo lang binigyan ko ang aking sarili ng sapat na mga suntok ng ulo upang maisagawa ang pamamaraang ito, kailangan kong ipasadya ang background at ang login screen na may isang institusyonal. imahe ng kung saan ako nagtatrabaho sa mga koponan ng mga gumagamit, mayroon silang isang Venezuelan distro na tinatawag na Canaima, batay sa Debian 7 Wheezy, ang mga gumagamit ay nagpapatunay sa pamamagitan ng LDAP at maraming mga gumagamit ang maaaring gumana sa parehong PC, kaya maaaring ito ang kaso na maraming mga sesyon kung saan dapat silang pagmamay-ari ng wallpaper, ang mga koponan ay na-customize ng script upang mapadali ang gawain ng mga technician at pagkatapos ang mga patakaran ay na-injected ng puppetmaster server.
Sinubukan ko sa mga gsettings ngunit gumagana lamang ito sa gumagamit na nag-log in, tila nai-save nito ang impormasyon sa isang lokal na database bawat gumagamit na hindi ko pa nakakamit, naghahanap ako ng ilang pagsasaayos na nalalapat sa buong system at hindi isang solong gumagamit.
Ito ay nagkakahalaga ng pagbanggit na ang imahe ay patuloy na nagbabago dahil sa pambansang mga petsa at anumang iba pang mga kadahilanan, kaya't ito ay hindi lamang isang imahe, nai-upload sila ng puppetmaster sa bawat client.
Wala akong ideya kung ang isang bagay tulad nito ay maaaring mailapat sa aking kaso.
Pagbati.