या भागात आपण दुसरी विंडो कशी तयार करावी आणि जीटीके सह त्याची रचना कशी बनवू ते पाहू. आम्ही प्रश्न जोडणे आणि तीन बटणे (50%, गोठवणे आणि पास) वापरणे यासारख्या काही कार्ये देखील पाहू.
टूलबार आणि टूलबट्टन
एक टूलबार तयार करा:
टूलबटन तयार करणे, या प्रकरणात आम्ही एक आयकॉन ठेवू (डीफॉल्टनुसार आपल्याला बरेच चिन्ह सापडतील येथे) सह «from_stock (Gtk.Stock.IconName) सह:
आमच्या अॅप्लिकेशनमध्ये आपल्याकडे दोन बटणे असलेल्या शीर्षस्थानी बार आहे, जिथे आपण प्रथम नवीन प्रश्न तयार करण्यासाठी आणि दुसरे प्रश्न आयात करण्यासाठी वापरू.
प्रश्न तयार करीत आहे:
यापूर्वी आम्ही तयार केलेले बटण (टूलबारमध्ये) जेव्हा आम्ही त्यावर क्लिक करतो तेव्हा आम्ही एक नवीन जीटीके विंडो उघडू जी आम्हाला आमच्या डेटाबेसमध्ये प्रश्न जोडण्यास अनुमती देईल:
एक नवीन विंडो तयार करण्यासाठी आम्ही एक नवीन वर्ग तयार करू, ज्याला आपण प्रश्न कॉल करू आणि आमचा अॅप वर्ग नवीन विंडो कशी तयार करेल (this.window = new Gtk.Window ();)
क्रमाने ग्राफिकल इंटरफेस तयार करण्यासाठी आम्ही काही घटक वापरू;
-लेबल (प्रश्न)
- प्रवेश (आम्ही प्रश्न कुठे लिहू)
-लेबल (प्रतिसाद)
- 4 आडव्या बॉक्स ज्यात प्रवेश असेल (उत्तर) आणि एक स्विच (ते योग्य असेल तर निवडण्यासाठी)
-बट्टन (पूर्ण करण्यासाठी)
हे कसे दिसते ते आम्ही पाहू शकतो:
प्रश्न जतन करण्यासाठी आम्हाला प्रविष्टीचा मजकूर घ्यावा लागेल, ते get_text () सह मिळतील जे स्ट्रिंग परत करेल.
एखादी स्विच सक्रिय आहे की नाही हे जाणून घेण्यासाठी आम्ही त्याची पद्धत वापरु शकतो get_active () चालू असल्यास ते खरे परत करते आणि ते बंद असल्यास चुकते.
50%, फ्रीझ आणि पास बटणे:
- पन्नास%:
50% साठी आम्हाला फक्त योग्य बटण कोणते आहे ते पहावे लागेल आणि 2 योग्य नाहीत जे काढून टाकावे, या प्रकरणात आम्ही त्यांना सेट_सेन्सिटिव्ह (खोटा) रद्द करतो.
निकाल:
-फ्रीझः
आम्ही बार पुन्हा 0 वर सेट केला.
this.timebar.set_fration (0);
-पास:
button3.clicked.connect (() => {
this.bd_select_preguntas ();
this.next_pregunta();
});
पुढील भाग (4):
पुढील हप्त्यात आम्ही आमच्या अनुप्रयोगाचे पैलू सुधारित कसे करू शकतो, जसे की प्रश्न नेहमी समान स्थितीत दिसत नाहीत, अॅपवर चिन्ह लावा ...
मला उत्तरे आवडतात ... हाहा .. शुभेच्छा
वाल्या बद्दलचे हे लेख खूप चांगले आहेत .. मी इतरांना आशा करतो .. ग्रीटिंग्ज
माझी तुमची वॅला वर नोंद प्रलंबित आहे, मला आशा आहे की बर्याच प्रसूती आहेत. चीअर्स!
छान लेख, सामायिकरण केल्याबद्दल धन्यवाद.
हाय,
हा अॅप तयार करण्यासाठी मी आपल्या मागील नोंदींचे अनुसरण केले आहे, आता नवीन विंडोच्या एंट्रीमध्ये प्रवेश करण्याचा प्रयत्न करीत असलेली समस्या आता आली आहे, क्रिएक्यूक्शन्स क्लासच्या सेव्ह सी पद्धतीत (विंडो तयार करणारा वर्ग) .
सार्वजनिक शून्य सेव्हसी () {
स्ट्रिंग स्ट्र = प्रश्न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 आहेत, म्हणून येथे मी आधीच गमावले आहे, आपण मला अधिक चांगले मार्गदर्शन करू शकता.
ठीक आहे, आपण प्रविष्ट्या तयार करता तेव्हा आपण त्यांना मजकूर मिळविण्यासाठी आपण त्यांना समान नाव देत नाही:
r1 = एंट्री 1.get_text ();
r2 = एंट्री 2.get_text ();
r3 = एंट्री 3.get_text ();
r4 = एंट्री 4.get_text ();
आपण इच्छित असल्यास, एक पेस्टबिन ठेवा आणि मी ते पाहू
lolbimbo खरं तर माझ्याकडे ती वेगवेगळी नावे आहेत, परंतु मी फक्त चाचण्यांसाठी एक वापरत आहे कारण त्यापैकी कोणीही मी एंट्रीमध्ये ठेवलेला मजकूर परत करत नाही, यामुळे मला वर नमूद केलेली त्रुटी पाठवते:
पण आऊटपुटवर मला हे मिळते.
(bu: 6196): Gtk-CRITICAL **: gtk_entry_get_text: प्रतिपादन `GTK_IS_ENTRY (प्रविष्टी) 'अयशस्वी
तह (शून्य)
मी अद्याप तपास करीत आहे ...
चीअर्स. !!
सज्ज येथे स्रोत आहे, ग्रीटिंग्ज.
http://pastebin.com/pZG8GbrY
नमस्कार हिरम, हे पहा, मी तुम्हाला हे कसे सोडवायचे ते सांगेन, पहिली गोष्ट अशी आहे कारण आम्ही एक नवीन विंडो तयार करीत आहोत (ती मुख्य नाही) आणि एन्ट्री कॉल करताना, (दिलगीर आहोत ते शब्द) मला माहित नाही की ती विचित्र परत का येत नाही जणू ती एन्ट्री नसून विजेट होती, परंतु अहो, हे सोडवण्यासाठी तुम्हाला व्हेर डायनॅमिक बनवून तयार केलेले सर्व स्थिर घटक बदलावे लागतील.
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
कोट सह उत्तर द्या
चाले, येथे पुन्हा त्रास देऊन मला त्रास होतच राहतो, आपण मला दर्शविलेले कोड ठीक आहे, इव्हेंटमध्ये काहीतरी घडते:
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
मी प्रयत्न केला नाही परंतु मला असे वाटते की फंक्शनमधून युक्तिवाद काढून टाकल्यास ती फेकून दिली जाईल.
सार्वजनिक शून्य सेव्हसी (जीटीके.एन्ट्री विचारतो ई) {
स्ट्रिंग स्ट्र = प्रश्नE.get_text ();
stdout.printf ("तह% s \ n", str);
}
a:
सार्वजनिक शून्य सेव्हसी () {
स्ट्रिंग स्ट्र = प्रश्नE.get_text ();
stdout.printf ("तह% s \ n", str);
}
Lolbimbo, मी युक्तिवाद काढण्याचा प्रयत्न केला आणि तरीही कार्य करत नाही,
मी अजूनही समस्या समजून घेण्याचा प्रयत्न करीत आहे, मी वालामध्ये नवीन आहे आणि मला जास्त कागदपत्रे सापडत नाहीत, मी लवकरच तोडगा शोधण्याची आशा करतो किंवा आपण चौथा भाग एक्सडी सोडण्याची वाट पाहत आहे.
मी प्रयत्न करत आहे ...
ग्रीटिंग्ज