अ‍ॅप तयार करीत आहे (वाला + जीटीके)) [तिसरा भाग]

या भागात आपण दुसरी विंडो कशी तयार करावी आणि जीटीके सह त्याची रचना कशी बनवू ते पाहू. आम्ही प्रश्न जोडणे आणि तीन बटणे (50%, गोठवणे आणि पास) वापरणे यासारख्या काही कार्ये देखील पाहू.

टूलबार आणि टूलबट्टन

एक टूलबार तयार करा:

app2

टूलबटन तयार करणे, या प्रकरणात आम्ही एक आयकॉन ठेवू (डीफॉल्टनुसार आपल्याला बरेच चिन्ह सापडतील येथे) सह «from_stock (Gtk.Stock.IconName) सह:

2013-12-07 23:26:52 पासून कॅप्चर करा

आमच्या अॅप्लिकेशनमध्ये आपल्याकडे दोन बटणे असलेल्या शीर्षस्थानी बार आहे, जिथे आपण प्रथम नवीन प्रश्न तयार करण्यासाठी आणि दुसरे प्रश्न आयात करण्यासाठी वापरू.

2013-11-08 00:30:32 पासून कॅप्चर करा

प्रश्न तयार करीत आहे:
यापूर्वी आम्ही तयार केलेले बटण (टूलबारमध्ये) जेव्हा आम्ही त्यावर क्लिक करतो तेव्हा आम्ही एक नवीन जीटीके विंडो उघडू जी आम्हाला आमच्या डेटाबेसमध्ये प्रश्न जोडण्यास अनुमती देईल:

app1

एक नवीन विंडो तयार करण्यासाठी आम्ही एक नवीन वर्ग तयार करू, ज्याला आपण प्रश्न कॉल करू आणि आमचा अॅप वर्ग नवीन विंडो कशी तयार करेल (this.window = new Gtk.Window ();)

क्रमाने ग्राफिकल इंटरफेस तयार करण्यासाठी आम्ही काही घटक वापरू;

-लेबल (प्रश्न)

- प्रवेश (आम्ही प्रश्न कुठे लिहू)

-लेबल (प्रतिसाद)

- 4 आडव्या बॉक्स ज्यात प्रवेश असेल (उत्तर) आणि एक स्विच (ते योग्य असेल तर निवडण्यासाठी)

-बट्टन (पूर्ण करण्यासाठी)

हे कसे दिसते ते आम्ही पाहू शकतो:

2013-12-08 01:07:08 पासून कॅप्चर करा

प्रश्न जतन करण्यासाठी आम्हाला प्रविष्टीचा मजकूर घ्यावा लागेल, ते get_text () सह मिळतील जे स्ट्रिंग परत करेल.

app5

एखादी स्विच सक्रिय आहे की नाही हे जाणून घेण्यासाठी आम्ही त्याची पद्धत वापरु शकतो get_active () चालू असल्यास ते खरे परत करते आणि ते बंद असल्यास चुकते.

 50%, फ्रीझ आणि पास बटणे:

 - पन्नास%:

50% साठी आम्हाला फक्त योग्य बटण कोणते आहे ते पहावे लागेल आणि 2 योग्य नाहीत जे काढून टाकावे, या प्रकरणात आम्ही त्यांना सेट_सेन्सिटिव्ह (खोटा) रद्द करतो.

app4

निकाल:

app6

-फ्रीझः

आम्ही बार पुन्हा 0 वर सेट केला.

this.timebar.set_fration (0);

-पास:

button3.clicked.connect (() => {
this.bd_select_preguntas ();
this.next_pregunta();
});

 पुढील भाग (4):

पुढील हप्त्यात आम्ही आमच्या अनुप्रयोगाचे पैलू सुधारित कसे करू शकतो, जसे की प्रश्न नेहमी समान स्थितीत दिसत नाहीत, अ‍ॅपवर चिन्ह लावा ...


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

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

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

*

*

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

  1.   f3niX म्हणाले

    मला उत्तरे आवडतात ... हाहा .. शुभेच्छा

  2.   पाचोमोरा म्हणाले

    वाल्या बद्दलचे हे लेख खूप चांगले आहेत .. मी इतरांना आशा करतो .. ग्रीटिंग्ज

  3.   cr0t0 म्हणाले

    माझी तुमची वॅला वर नोंद प्रलंबित आहे, मला आशा आहे की बर्‍याच प्रसूती आहेत. चीअर्स!

  4.   pptru म्हणाले

    छान लेख, सामायिकरण केल्याबद्दल धन्यवाद.

  5.   हिराम म्हणाले

    हाय,

    हा अ‍ॅप तयार करण्यासाठी मी आपल्या मागील नोंदींचे अनुसरण केले आहे, आता नवीन विंडोच्या एंट्रीमध्ये प्रवेश करण्याचा प्रयत्न करीत असलेली समस्या आता आली आहे, क्रिएक्यूक्शन्स क्लासच्या सेव्ह सी पद्धतीत (विंडो तयार करणारा वर्ग) .

    सार्वजनिक शून्य सेव्हसी () {
    स्ट्रिंग स्ट्र = प्रश्नE.get_text ();
    stdout.printf ("तह% s \ n", str);
    }

    पण आऊटपुटवर मला हे मिळते.
    (bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: प्रतिपादन `GTK_IS_ENTRY (प्रविष्टी) 'अयशस्वी

    तह (शून्य)

    मी काही उदाहरणे पाहिली आहेत आणि प्रवेशांच्या प्रवेशांच्या पद्धतींच्या परिभाषेत ते असे करतात:

    शून्य ऑन_एक्टिवेट (Gtk.Entry प्रविष्टी) {
    नाव = एंट्री.गेट_टेक्स्ट ();
    मुद्रण ("\ n हेलो" + नाव + "! \ n \ n");
    }

    परंतु त्यांची फक्त एक नोंद आहे आणि या उदाहरणात 5 आहेत, म्हणून येथे मी आधीच गमावले आहे, आपण मला अधिक चांगले मार्गदर्शन करू शकता.

    1.    lolbimbo म्हणाले

      ठीक आहे, आपण प्रविष्ट्या तयार करता तेव्हा आपण त्यांना मजकूर मिळविण्यासाठी आपण त्यांना समान नाव देत नाही:

      r1 = एंट्री 1.get_text ();
      r2 = एंट्री 2.get_text ();
      r3 = एंट्री 3.get_text ();
      r4 = एंट्री 4.get_text ();

      आपण इच्छित असल्यास, एक पेस्टबिन ठेवा आणि मी ते पाहू

      1.    हिराम म्हणाले

        lolbimbo खरं तर माझ्याकडे ती वेगवेगळी नावे आहेत, परंतु मी फक्त चाचण्यांसाठी एक वापरत आहे कारण त्यापैकी कोणीही मी एंट्रीमध्ये ठेवलेला मजकूर परत करत नाही, यामुळे मला वर नमूद केलेली त्रुटी पाठवते:

        पण आऊटपुटवर मला हे मिळते.
        (bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: प्रतिपादन `GTK_IS_ENTRY (प्रविष्टी) 'अयशस्वी

        तह (शून्य)

        मी अद्याप तपास करीत आहे ...

        चीअर्स. !!

      2.    हिराम म्हणाले

        सज्ज येथे स्रोत आहे, ग्रीटिंग्ज.
        http://pastebin.com/pZG8GbrY

    2.    lolbimbo म्हणाले

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

      var questionE = नवीन Gtk.Entry ();

      तर कार्य कार्य करेल आणि आपल्याला एंट्रीमध्ये मजकूर प्राप्त होईल.

      save.clicked.connect (() =>
      // स्ट्रिंग str = this.questionE.get_text ();
      stdout.printf ("तह% s \ n", विचारा EEget_text ());
      });

      शेवटी, ती दर्शविण्यासाठी आपण जिथे प्रविष्टी जोडाल तेथे ओळ बदलण्यास विसरू नका:

      AskE.show ();

      मी आपल्‍याला सुधारणेसह संपूर्ण कोड ठेवतो जेणेकरून आपण ते आधीपासून कार्य करीत आहे हे तपासू शकता, म्हणजेच, अनुप्रयोगासह सुरू ठेवण्यासाठी आपल्याला सर्व घटक (किमान प्रविष्ट्या) बदलणे आवश्यक असल्यास.

      http://paste.desdelinux.net/5048

      कोट सह उत्तर द्या

      1.    हिराम म्हणाले

        चाले, येथे पुन्हा त्रास देऊन मला त्रास होतच राहतो, आपण मला दर्शविलेले कोड ठीक आहे, इव्हेंटमध्ये काहीतरी घडते:

        save.clicked.connect (() =>
        // स्ट्रिंग str = this.questionE.get_text ();
        stdout.printf ("तह% s \ n", askE.get_text ());
        });

        हे प्रश्न वर्गाच्या आत आहे आणि ते ठीक आहे परंतु जेव्हा सेव्ह सी मधून प्रवेश घ्यायचा आहे, तो संकलित करत नाही, ही त्रुटी माझ्यावर टाकते.

        bu01.vala: .50.38०.50.50-1०. Ar०: त्रुटी: युक्तिवाद १: `प्रश्न.सेव्हसी 'मध्ये Gtk.Button.clicked' मधून रूपांतरित करणे शक्य नाही
        this.guardar.clicked.connect (this.guardarC);
        ^^^^^^^^^^^^^^
        bu01.vala: 251.58-251.66: चेतावणी: Gtk.Stock 3.10 पासून नापसंत केले गेले आहे
        bu01.vala: 260.59-260.67: चेतावणी: Gtk.Stock 3.10 पासून नापसंत केले गेले आहे
        संकलन अयशस्वी: 1 त्रुटी (टी), 2 चेतावणी

        मी विचार करू इच्छितो जेव्हा क्लिक इव्हेंट येतो तेव्हा मी पॅरामीटर पास करण्याच्या मार्गामुळे होतो:
        this.guardar.clicked.connect (this.guardarC);

        अभिप्रायाबद्दल आगाऊ धन्यवाद; येथे मी त्रुटी टाकणारा कोड सोडतो: http://pastebin.com/pLzExhrb

      2.    lolbimbo म्हणाले

        मी प्रयत्न केला नाही परंतु मला असे वाटते की फंक्शनमधून युक्तिवाद काढून टाकल्यास ती फेकून दिली जाईल.

        सार्वजनिक शून्य सेव्हसी (जीटीके.एन्ट्री विचारतो ई) {
        स्ट्रिंग स्ट्र = प्रश्नE.get_text ();
        stdout.printf ("तह% s \ n", str);
        }

        a:
        सार्वजनिक शून्य सेव्हसी () {
        स्ट्रिंग स्ट्र = प्रश्नE.get_text ();
        stdout.printf ("तह% s \ n", str);
        }

      3.    हिराम म्हणाले

        Lolbimbo, मी युक्तिवाद काढण्याचा प्रयत्न केला आणि तरीही कार्य करत नाही,

        मी अजूनही समस्या समजून घेण्याचा प्रयत्न करीत आहे, मी वालामध्ये नवीन आहे आणि मला जास्त कागदपत्रे सापडत नाहीत, मी लवकरच तोडगा शोधण्याची आशा करतो किंवा आपण चौथा भाग एक्सडी सोडण्याची वाट पाहत आहे.

        मी प्रयत्न करत आहे ...

        ग्रीटिंग्ज