Vala + Gtk3 अ‍ॅप तयार करत आहे. [पहिला भाग]

नंतर प्रथम पोस्ट मी एक टिप्पणी वाचली की "हॅलो वर्ल्ड" पेक्षा काही गुंतागुंतीच्या गोष्टींनी सुरुवात करणे चांगले होईल, त्यानंतर मी एक अनुक्रम (3 किंवा 4) एक साधा अनुप्रयोग तयार करून पोस्ट (vala + gtk 3 सह).

या अनुप्रयोगात एक सोपा मल्टीपल चॉईस प्रश्न आणि उत्तर खेळ (ट्रिव्हीया प्रकार) असेल, ज्यामध्ये questions प्रश्नांची उत्तरे देणे चुकीचे टोक (गेम ओवर), आणि आपल्याकडे असलेल्या प्रत्येक प्रश्नासाठी जास्तीत जास्त प्रश्नांची उत्तरे देण्याचे उद्दीष्ट आहे. उत्तर देण्यासाठी मर्यादित वेळ.

डिझाइन

आमच्या अर्जाची मुख्य रचना अशी असेलः

अनुप्रयोग

नंतर आम्ही अशी काही बटणे ठेवू जी आपल्याला 50०% (दोन चुकीची उत्तरे काढून टाकणे), वेळ फ्रीझ करणे, प्रश्न पास करण्याचा पर्याय देतील. ते सर्व एकदाच वापरले जाऊ शकते, एकदा वापरल्यानंतर अक्षम केले गेले.

डिझाइन ए कोड
आम्ही डिझाइनमध्ये बघू शकतो की आम्ही जीटीके घटक वापरू.

उत्तरे -> बटण.

प्रश्न -> लेबल.

वेळ -> प्रोग्रेसबार.

चुकीचे / अचूक मुद्दे आणि प्रश्न -> लेबल.

आपल्याकडे उभ्या रचनेची रचना आहे म्हणून आपण GBbox अनुलंब वापरु शकतो.

कोड

इंट मेन (स्ट्रिंग [] आर्गिंग्स) t Gtk.init (रेफ आर्गेस); var विंडो = नवीन Gtk.Window (); विंडो.टिटल = "अ‍ॅप"; विंडो.विंडो_पोजिशन = जीटीके.विंडोपोजिशन.सेन्टर; विंडो.सेट_डेफॉल्ट_साइझ (300, 340); विंडो.डिस्ट्रोय.कॉनॅक्ट (Gtk.main_quit); विंडो.सेट_बर्डर_विड्थ (10); // अनुलंब बॉक्स वर बॉक्स = नवीन Gtk.Box (Gtk.Orientation.VERTICAL, 0); बॉक्स.सेट_स्पेकिंग (10); // प्रश्नाचे लेबल var प्रश्न = नवीन Gtk.Label ("प्रश्न?"); // टाइम प्रोग्राम बार वर वेळ_बार = नवीन जीटीके.प्रोग्रेसबार (); वेळ_बार.सेट_टेक्स्ट ("वेळ"); वेळ_बार.सेट_शो_टेक्स्ट (खरे); // प्रतिसाद बटणे वर प्रतिसाद 1 = नवीन Gtk.Button.with_label ("प्रतिसाद 1"); var resposta2 = नवीन Gtk.Button.with_label ("प्रत्युत्तर द्या 2"); var resposta3 = नवीन Gtk.Button.with_label ("प्रत्युत्तर द्या 3"); var resposta4 = नवीन Gtk.Button.with_label ("प्रत्युत्तर द्या 4"); // लेबल माहिती वर गुण = नवीन Gtk.Label ("पॉइंट्स: 0"); box.pack_start (प्रश्न); box.pack_start (वेळ_बार); box.pack_start (प्रत्युत्तर 1); बॉक्स.पॅक_स्टार्ट (रेस्पोस्टा 2); box.pack_start (resposta3); बॉक्स.पॅक_स्टार्ट (रेस्पोस्टा 4); box.pack_start (गुण); विंडो.एडडी (बॉक्स); विंडो.शो_ सर्व (); Gtk.main (); रिटर्न 0;

2013-11-02 21:44:14 पासून कॅप्चर करा

"वेळ" हलविण्यासाठी आम्ही GLib चा वापर करतो. टाइमआउट जिथे प्रत्येक 500 मिलिसेकंद सक्रिय केला जाईल (एक लूप आहे जिथे आमच्या बारचे मूल्य असलेले व्हेरिएबल वाढेल)

GLib.Timeout.add (500, () => {// सद्य प्रगती मिळवा: // (0.0 -> 0%; 1.0 -> 100%) दुहेरी प्रगती = वेळ_बार.जेट_फ्रॅक्शन (); // बार अद्यतनित करा: प्रगती = प्रगती + ०.०१; वेळ_बार.सेट_फ्रॅक्शन (प्रगती); // १००% परत होईपर्यंत पुनरावृत्ती <0.01;;);

स्वारस्य दुवे 
http://www.valadoc.org/#!wiki=index (आपण त्यांच्या जीटीकेसह सर्व जीटीके घटक शोधू शकता ...)


6 टिप्पण्या, आपल्या सोडा

आपली टिप्पणी द्या

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही. आवश्यक फील्ड चिन्हांकित केले आहेत *

*

*

  1. डेटा जबाबदार: मिगुएल Áन्गल गॅटन
  2. डेटाचा उद्देशः नियंत्रण स्पॅम, टिप्पणी व्यवस्थापन.
  3. कायदे: आपली संमती
  4. डेटा संप्रेषण: कायदेशीर बंधन वगळता डेटा तृतीय पक्षास कळविला जाणार नाही.
  5. डेटा संग्रहण: ओकेन्टस नेटवर्क (EU) द्वारा होस्ट केलेला डेटाबेस
  6. अधिकारः कोणत्याही वेळी आपण आपली माहिती मर्यादित, पुनर्प्राप्त आणि हटवू शकता.

  1.   लोझानोटक्स म्हणाले

    खूप चांगले, मी एक प्रकारचा टॅब कसा बनवू शकतो हे मी तुम्हाला विचारत आहे परंतु अनुलंबरित्या, जरी त्यांना टॅब असणे आवश्यक नसले तरी ते बटणे किंवा टॉगलबट्टन असू शकतात, परंतु मला टॅबच्या वर्तनाची आवश्यकता आहे, जेव्हा 1 सामग्रीवर स्पर्श करते आणि दुसरा टॅब अक्षम आहे, मी स्वत: ला स्पष्ट केले की नाही हे मला ठाऊक नाही, आपण मला तपासणीसाठी काही माहिती देऊ शकाल की नाही हे पाहण्यासाठी मी एक प्रतिमा सोडतो. धन्यवाद!

    प्रतिमा: http://i.imm.io/1jURw.png

    1.    lolbimbo म्हणाले

      "लेआउट" किंवा मजकूर बदल (उदाहरणार्थ)?

  2.   पांडेव 92 म्हणाले

    कॅटलान पारला

  3.   स्तब्ध म्हणाले

    हे खरोखर चांगले आहे मी शोधत असलेल्या गोष्टीसारखेच हे एक प्रश्न आहे, हा प्रश्न टर्मिनलशी कोणत्याही प्रकारे जोडला जाऊ शकतो?
    उदाहरणार्थ: सुरू करण्यासाठी मी उत्तर देण्यास वेळ काढतो मी ते अमर्यादित मध्ये सोडतो आणि तेच मला करण्यास आवडेल.

    आपण कोणते डेस्कटॉप वातावरण स्थापित करू इच्छिता?
    KDE
    ग्नोम 3
    दालचिनी
    युनिटी

    टर्मिनलमधील संबंधित प्रतिष्ठापन आदेशाशी जोडलेले या प्रत्येकजण, sudo apt-get install ubuntu-डेस्कटॉप

    1.    lolbimbo म्हणाले

      होय, आपल्याला नुकतेच प्रोसेस.स्पेन_कॉमांड_लाईन_सेन्सी ("ptप्ट-गेट इन्स्टॉल उबंटू-डेस्कटॉप") लिहावे लागेल;

      http://valadoc.org/#!api=glib-2.0/GLib.Process.spawn_command_line_sync

  4.   शौल उरीबे म्हणाले

    उत्कृष्ट, मला हे पोस्ट आवडले आहे, मी सराव करीत आहे (आणि मी त्याबद्दल उत्सुक आहे), अभिवादन