Cliaint a Chruthú [Vala agus Gtk 3]

De ghnáth i Linux chailleann muid cúpla feidhmchlár, nó cliaint roinnt seirbhísí a thagann amach i bhfad níos luaithe d’ardáin eile, mar gheall ar an rang teagaisc seo feicfimid conas cliant a chruthú (fís i bhfad os a chionn a bheidh ann), trí REST API a úsáid le luach (agus gtk 3).

API

Níl mé ag dul a mhíniú cad é API, nó cad é an API REST (is féidir leat a lán faisnéise a fháil i google), déarfaidh mé go garbh go ndéanfaimid roinnt iarratas (GET nó POST) agus tabharfaidh sé freagra ar ais i bhformáid JSON.

Chinn mé an api a cuireadh ar fáil a úsáid don rang teagaisc marvel (féach cáipéisíocht api), a sholáthraíonn sraith faisnéise dúinn faoi greannáin, carachtair ...

Chun rochtain a fháil uirthi teastaíonn eochair uainn, ar féidir linn a fháil trí chlárú, nuair a fhaightear í tá teorainn 3000 iarratas againn.

A ligean ar shampla den API a fheiceáil, chun an api seo a ghlaoch ní mór dúinn ár n-eochracha a úsáid (tá ceann poiblí agus ceann príobháideach againn):

m

Chun an sampla simplí seo a fheiceáil is féidir linn a úsáid www.md5.net áit a gcuirimid 1 "+" keyprivate "+" keypublic agus a ghineann an hash, is féidir linn glaoch mar a chuireann sé san íomhá. Faighfimid an freagra (sa chás seo tá sé chun na carachtair a fheiceáil):

tá earráid san íomhá a bheadh ​​an glao http://gateway.marvel.com/v1/poiblí/ greannáin ...

mm

Tá cláir agus forlíontáin ann do bhrabhsálaithe a éascóidh dearcadh json:

m1 Is féidir linn a fheiceáil go dtugann sé an t-ainm, an tuairisc, mionsamhail (íomhá an charachtair) dúinn ...

marvel forbairt gréasáin

Caitheamh JSON le vala (Parseando).

Ní mhíneoidh mé ach cad iad na formáidí json, is féidir leat faisnéis a fháil ar líne. Is féidir linn sampla simplí a rinneadh i Vala a fháil anseo.

Ar dtús, suiteálaimid an leabharlann json-glib ar eagla nach bhfuil sí suiteáilte againn:

sudo apt-get install libjson-glib-1.0-0 libjson-glib-1.0-0-dev

Suiteáilfimid libsoup freisin:

sudo apt-get install libsoup-2.4 libsoup2.4-dev
Ní chuirfidh mé an eochair phoiblí ná an hash leis na hiarrataí

Ar an gcéad dul síos iompórtálaimid na leabharlanna a úsáidfimid:

Anraith a úsáid; ag baint úsáide as Json; ag baint úsáide as Gtk;

Iarratas a sheoladh:

var uri = "http://gateway.marvel.com/v1/public/comics?dateRange=2014-16-03%2C2014-16-03&orderBy=-onsaleDate&limit=10&ts=1&apikey=123&hash=555224458"; var session = nua Soup.SessionSync (); var message = Soup.Message nua ("GET", uri); session.send_message (teachtaireacht);

Taispeánfaidh an url uasmhéid de 10 greannán dúinn a bhí le feiceáil idir 2 dháta (00-03-2014, 16-03-2014).
Ar dtús cruthaímid seisiún, ansin déanaimid iarratas den chineál GET a thógáil agus a sheoladh.

Parseying json:

var root_object = parser.get_root () .get_object ();

faigheann an príomhchuspóir i.e. an cód json go léir.

freagra var = root_object.get_object_member ("sonraí"); var results = response.get_array_member ("torthaí");

Is féidir linn a ghabháil

Próiseáil an cód:

foreach (var geonode in results.get_elements ()) {var geoname = geonode.get_object (); stdout.printf ("% f \ n% s \ n% s \ n \ n", geoname.get_string_member ("id"), geoname.get_string_member ("ainm"), geoname.get_double_member ("tuairisc")); }

Is féidir leat samplaí a fheiceáil anseo.

Ag taispeáint na faisnéise:

Seo a thaitníonn linn cheana féin conas an fhaisnéis a thaispeáint, chun na híomhánna is féidir linn an modh seo a úsáid a íoslódáil:

async statach poiblí Gdk.Pixbuf? get_img (sreang url) {Gdk.Pixbuf? pix = null; var file = File.new_for_uri (url); bain triail as {GLib.InputStream @input_stream = toradh comhad.read_async (Tosaíocht.DEFAULT, null); pix = toradh Gdk.Pixbuf.from_stream_at_scale_async nua (input_stream, 800, 600, fíor, null); } ghabháil (Earráid e) {rabhadh (e.message); } filleadh pix; }

Is modh é a dhéantar i snáithe eile (asincrónach) agus é á ghlaoch ní mór dúinn é a dhéanamh ar an mbealach seo:

get_img.begin (img_url, (obj, res) => {var pix = get_img.end (res);});

Áit a bhfuil img_url mar url na híomhá a fhaighimid ón json.

Aremos a thiomsú:

valac --pkg gtk + -3.0 --pkg libsoup-2.4 --pkg json-glib-1.0 customername.vala
Is féidir linn cáipéisíocht a fháil do json-glib anseo.

Leideanna

Roinnt Leideanna a chabhróidh linn ár gcliant / feidhmchlár a chruthú:

AppIndicator

Is leabharlann é AppIndicator a ligeann dúinn ár gclár a chur mar tháscaire sa phainéal uachtarach (in Elementary os agus Ubuntu araon).

Suiteáil appindicator3-0.1

sudo apt-get install libappindicator3-dev

Tiomsú:

valac --pkg gtk + -3.0 appindicator --pkg3-0.1 clár.vala

Sa chás go bhfaigheann tú botún, b’fhéidir go bhfuil sé toisc go bhfuil leagan níos nuaí de appindicator agat, sa chás sin téigh chuig / usr / share / vala / vapi agus feicfidh tú cad é do leagan.

Gabháil ó 2014-02-23 15:30:57

Is féidir linn sampla a fháil sa Suíomh Gréasáin forbartha Ubuntu.

Sampla beag:

Gabháil ó 2014-02-23 17:04:52

 

var táscaire = Táscaire nua ("win.title", "office-address-book", IndicatorCategory.APPLICATION_STATUS); táscaire.set_status (IndicatorStatus.ACTIVE); var menu = nua Gtk.Menu (); var item = nua Gtk.MenuItem.with_label ("Cuir teagmháil nua leis"); item.activate.connect (() => {//indicator.set_status(IndicatorStatus.ATTENTION); // CreateContact ();}); mír.show (); menu.append (mír); mír = nua Gtk.MenuItem.with_label ("Scrios teagmháil"); mír.show (); item.activate.connect (() => {//indicator.set_status(IndicatorStatus.ATTENTION); // DeleteContact ();}); menu.append (mír); táscaire.set_menu (roghchlár);

Íomhánna

Cuir deilbhín inár bhfeidhmchlár:

Tosaímid ó thógálaí an ranga Gtk.Window:

bain triail as {// Eolaire eolaire this.icon = nua Gdk.Pixbuf.from_file ("fcbb.png"); } ghabháil (Earráid e) {stderr.printf ("earráid:% s \ n", e.message); }

Gabháil ó 2014-02-23 15:44:00

 

Pictiúr simplí

Íomhá shimplí i vala is féidir linn a chur mar shampla i leagan amach.

íomhá = nua Gtk.Image (); image.set_from_file ("fcb.png");

fcb

Tuairim

Úsáid vala agus gtk do chliaint? níl, ó mo thuairim tá sé i bhfad níos fearr agus níos éasca c ++ agus Qt (QML) a úsáid, tá sé ar feitheamh alt a dhéanamh chun cliaint a dhéanamh i QML.


Cloíonn ábhar an ailt lenár bprionsabail eitic eagarthóireachta. Chun earráid a thuairisciú cliceáil anseo.

2 trácht, fág mise

Fág do thrácht

Ní thabharfar do sheoladh r-phoist a fhoilsiú. Réimsí riachtanacha atá marcáilte le *

*

*

  1. Freagrach as na sonraí: Miguel Ángel Gatón
  2. Cuspóir na sonraí: SPAM a rialú, bainistíocht trácht.
  3. Legitimation: Do thoiliú
  4. Na sonraí a chur in iúl: Ní chuirfear na sonraí in iúl do thríú páirtithe ach amháin trí oibleagáid dhlíthiúil.
  5. Stóráil sonraí: Bunachar sonraí arna óstáil ag Occentus Networks (EU)
  6. Cearta: Tráth ar bith is féidir leat do chuid faisnéise a theorannú, a aisghabháil agus a scriosadh.

  1.   Marcos a dúirt

    go raibh maith agat carnal 😀, tá sé iontach a fheiceáil cad is féidir le "cúpla líne de chód" a dhéanamh nuair a bhíonn eolas agat. tugann an sampla go leor smaointe faoi rudaí eile 😀

  2.   eliotime3000 a dúirt

    Leideanna an-mhaith, bro.

    Féach an féidir liom ceann a dhéanamh.