Kirkirar Abokan Ciniki [Vala da Gtk 3]

Kusan a cikin Linux mun rasa kusan wasu aikace-aikace, ko abokan cinikin wasu ayyuka waɗanda suka fito da wuri don wasu dandamali, saboda a cikin wannan darasin zamu ga yadda ake ƙirƙirar abokin ciniki (zai zama hangen nesa nesa sama), ta hanyar amfani da REST API tare da ƙima (da gtk 3).

API

Ba zan bayyana abin da API yake ba, ko menene REST API (za ku iya samun bayanai da yawa a cikin google), kawai zan ce kusan za mu yi wasu buƙatun (GET ko POST) kuma zai dawo da amsa a cikin tsarin JSON.

Don koyarwar na yanke shawarar amfani da api wanda yake samar mana Marvel (duba takaddun api), wanda ke ba mu jerin bayanai game da abubuwan ban dariya, haruffa ...

Don samun dama gare shi muna buƙatar maɓalli, wanda zamu iya samu ta hanyar rijista, da zarar mun samu muna da iyakar buƙatun 3000.

Bari mu ga misali na API, don kiran wannan api dole ne muyi amfani da maɓallanmu (muna da na jama'a da na masu zaman kansu):

m

Don ganin wannan sauki misali zamu iya amfani dashi www.md5.net inda muka sanya maɓallin kewayawa "+" maɓallin kewayawa "+" kuma wannan yana haifar da zanta, zamu iya kira kamar yadda ya sanya a hoto. Zamu sami amsa (a wannan yanayin ganin haruffa):

akwai kuskure a hoton kiran zai kasance http://gateway.marvel.com/v1/jama'a/ mai ban dariya ...

mm

Akwai shirye-shirye da kari don masu bincike waɗanda zasu sauƙaƙe ra'ayin json:

m1

Zamu iya ganin cewa ya bamu suna, kwatancen, ɗan hoto (hoton halin) ...

yi mamakin ci gaban yanar gizo

Kula da JSON tare da vala (Parseando).

Kuma ba zan bayyana yadda tsarin yake ba json, zaka iya samun bayanai ta yanar gizo. Zamu iya samun misali mai sauƙi wanda aka yi a cikin Vala a nan.

Da farko dai mun girka dakin karatu na json-glib idan har bamu dashi:

sudo apt-samun shigar libjson-glib-1.0-0 libjson-glib-1.0-0-dev

Hakanan zamu girka libsoup:

sudo apt-samun shigar libsoup-2.4 libsoup2.4-dev
Ba zan sanya maɓallin jama'a ko zanta ga buƙatun ba

Da farko dai muna shigo da dakunan karatun da zamuyi amfani dasu:

amfani da Miya; amfani da Json; amfani da Gtk;

Aika buƙata:

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 zaman = sabon Soup.SessionSync (); var message = sabon Miyan Mage. ("SAMU", uri); zaman.send_message (sako);

Url din zai nuna mana iyakar adadi 10 da suka fito tsakanin ranakun 2 (00-03-2014, 16-03-2014).
Da farko dai muna kirkirar wani zama, sannan zamu gina bukatar GET kuma mu tura ta.

Karin json:

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

samun babban abu wato duk lambar json.

var response = root_object.get_object_member ("bayanai"); sakamakon sakamako = response.get_array_member ("sakamakon");

Zamu iya kamawa

Aiwatar da lambar:

foreach (var geonode a cikin sakamakon.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 ("suna"), geoname.get_double_member ("bayanin")); }

Kuna iya ganin misalai a nan.

Nuna bayanan:

Anan mun riga mun shigar da yadda muke son nuna bayanin, don zazzage hotunan da zamu iya amfani da wannan hanyar:

async na tsaye a tsaye Gdk.Pixbuf? get_img (url url) {Gdk.Pixbuf? pix = mara kyau; var fayil = File.new_for_uri (url); gwada {GLib.InputStream @input_stream = samar da fayil.read_async (Fifiko.DEFAULT, ba komai); pix = samar da sabon Gdk.Pixbuf.from_stream_at_scale_async (shigar da bayanai, 800, 600, gaskiya, ba komai); } kama (Kuskure e) {gargadi (e.message); } dawo da pix; }

Kasancewa hanyar da ake aiwatar da ita a cikin wani zaren (asynchronous) lokacin kiranta dole muyi hakan ta wannan hanyar:

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

Inda img_url shine url na hoton da muke samu daga json.

Don tattara wurare:

valac --pkg gtk + -3.0 --pkg libsoup-2.4 --pkg json-glib-1.0 sunan mai amfani.vala
Zamu iya samun takardu don json-glib a nan.

tips

Wasu Nasihu waɗanda zasu iya taimaka mana ƙirƙirar abokin cinikinmu / aikace-aikace:

Bayyanawa

AppIndicator laburare ne wanda yake bamu damar sanya shirin mu a matsayin manuniya a cikin sama (duka a Elementary os da Ubuntu).

Girkawa mai nunawa 3-0.1

sudo dace-samun shigar libappindicator3-dev

Tattara:

valac --pkg gtk + -3.0 --pkg mai bayyanawa 3-0.1 shirin.vala

Idan kun sami kuskure, yana iya zama saboda kuna da sabon sigar mai bayyanawa, a haka sai ku je / usr / share / vala / vapi kuma zaku ga yadda sigarku take.

Kama daga 2014-02-23 15:30:57

Zamu iya samun misali a cikin Yanar gizon Ubuntu.

Littlean misali:

Kama daga 2014-02-23 17:04:52

var nuna alama = sabon Mai nuna alama ("win.title", "littafin adireshin-adireshi", IndicatorCategory.APPLICATION_STATUS); nuna alama.set_status (IndicatorStatus.ACTIVE); var menu = sabon Gtk.Menu (); var abu = sabon Gtk.MenuItem.with_label ("Addara sabuwar lamba"); item.activate.connect (() => {//indicator.set_status(IndicatorStatus.ATTENTION); // CreateContact ();}); abu. nuna (); menu.haɗa (abu); abu = sabon Gtk.MenuItem.with_label ("Share lamba"); abu. nuna (); item.activate.connect (() => {//indicator.set_status(IndicatorStatus.ATTENTION); // DeleteContact ();}); menu.haɗa (abu); indicator.set_menu (menu);

Hotuna

Sanya gunki a cikin aikace-aikacenmu:

Mun fara daga mai ginin Gtk.Window aji:

gwada {// Directory na hoton wannan.icon = sabon Gdk.Pixbuf.from_file ("fcbb.png"); } kama (Kuskuren e) {stderr.printf ("kuskure:% s \ n", e.message); }

Kama daga 2014-02-23 15:44:00

M hoto

Hoto mai sauƙi a cikin vala wanda zamu iya sanya misali a cikin layout.

hoto = sabon Gtk.Image (); hoto.set_from_file ("fcb.png");

fcb

Ra'ayi

Yi amfani da vala da gtk don abokan ciniki? a'a, daga ra'ayina ya fi kyau da sauƙi don amfani da c ++ da Qt (QML), yana jiran yin wata kasida don yin abokan ciniki a QML.


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   Marcos m

    godiya ta jiki 😀, yana da kyau a ga abin da "wasu layuka kaɗan" zasu iya yi lokacin da kuna da ilimi. misalin yana ba da ra'ayoyi da yawa don wasu abubuwa 😀

  2.   lokacin3000 m

    Kyakkyawan nasihu, bro.

    Duba ko zan iya yin guda ɗaya.