उबंटू टच [QML] साठी अॅप तयार करणे - [भाग 3]

उबंटू टचसाठी अ‍ॅप तयार करत आहे

या पोस्ट मालिकेचा तिसरा भाग (पहिला भाग, दुसरा भाग) जिथे आम्ही अनुप्रयोग तयार करीत आहोत उबंटू टच किंवा त्यासाठीच उबंटू डेस्कटॉप. मागील पोस्टमध्ये माझ्या बाबतीत घडलेला एक भाग मी जोडणार आहे, आणि ते म्हणजे आम्ही असफलते, हिट्स आणि पॉईंट्सचे रूपांतर वाढवले ​​असले तरीही ते स्क्रीनवर दर्शविले गेले नाहीत, कारण आम्ही लेबलांची मजकूर मालमत्ता बदलली नाही:

                लेबल-आयडी: अयशस्वी मजकूर: "अयशस्वी:" + एनफॉल्ट रंग: "लाल" el लेबल {आयडी: हिट मजकूर: "हिट:" + जन्मा} लेबल {आयडी: पॉइंट मजकूर: "पॉइंट्स:" + एनपॉईंट्स फॉन्ट आकार: "मध्यम "}

गेम लॉजिकचा सुरू ठेवा

वेळ

बरं, आम्हाला आधीपासूनच माहित आहे की प्रोग्रेसबार आपल्या प्रश्नाचे उत्तर देण्यास लागणारा वेळ दर्शवितो. टाइमर वापरण्यासाठी वेळ व्यवस्थापित करण्यासाठी, टाइमर एक घटक आहे जो एक्स मिलिसेकंदांच्या अंतराने पुनरावृत्ती केला जातो, या प्रकरणात प्रत्येक अंतराला आम्ही प्रोग्रेसबारची प्रगती वाढविण्यास सांगू; पण ती शेवटपर्यंत पोचली आहे की नाही हे पाहण्यापूर्वी, शेवटपर्यंत पोचल्यास आपण आयुष्य वजा केले पाहिजे.

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

टाइमर कोड (आम्ही ते प्रोग्रेसबारच्या खाली ठेवू शकतो):

       प्रोग्रेसबार {आयडी: टाईम अँकरस.हॉरिजॉन्टल सेंटर: पॅरेंट .होरिजॉन्टल सेंटर मिनिमम व्हॅल्यू: ० मॅक्सिमम व्हॅल्यू: }००} टाइमर {आयडी: सिंपल्टीमर c: १०० रिपिट: ट्रु रनिंग: ट्रू ऑन ट्रिगरः {if (टाईम.व्हल्यू <टाइममॅक्सिमम व्हॅल्यू) टाइम.व्हल्यू + = 0 अन्य fa nfaults = nfaults + 300 if (nfaults <100) {num = num + 1.0 Logic.nextQuestion (num) time.value = time.minimumValue} else {simpletimer.stop () PopupUtils.open (संवाद)}} }}

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

टाइमर प्रारंभ आणि थांबविण्यासाठी:

सिंपल्टीमर.स्टार्ट () सिंपल्टीमर.स्टॉप ()

पर्याय (50%, गोठवा आणि पुढे)

प्रथम असे तीन व्हेरिएबल्स बनवू जे नियंत्रित करतात की पर्याय फक्त एकदाच वापरता येतील:

    प्रॉपर्टी इन्ट टक्के

50%

बटण {आयडी: बी 50 मजकूर: "50%" ऑनक्लिक केलेले: {if (टक्के == 0) {वर सही = एडीकॉमन्ट कॉन्टेंट्स.क्यूशन्स [संख्या]. सुधारित असल्यास (बरोबर == 1) {रेस 2.एनेबल = चुकीचे रेस्पेक्ट 3. सक्षम = चुकीचे} अन्यथा जर (बरोबर == 2) {resp1.en सक्षम = खोटे रेस्पे.एनेबल = खोटे} अन्यथा (बरोबर == 4) {रेस 3.एनेबल = चुकीचे रेस 1.एनेबल = चुकीचे} अन्य} रेस 4.एनेबल = खोटे रेस 2.एनेबल = खोटे} टक्के = 1}

सक्षम = चुकीचे आम्ही जे करतो त्या बटणास असे ठेवले आहे जेणेकरून त्यास दाबता येणार नाही, अशा प्रकारे आम्हाला aDocament.contents.questions [num] सह योग्य उत्तर मिळेल. बरोबर आणि येथून कोणते योग्य आहे यावर अवलंबून- आम्ही काढून टाकतो »दोन बटणे नाहीत.

गोठवा

                बटण {आयडी: बीकॉन मजकूर: "फ्रीझ" ऑनक्लिक केलेले: {if (== 0 सह) सिंपल्टीमर.स्टॉप () = 1} with सह

ही एक सोपी गोष्ट आहे, आम्हाला प्रश्नावर जाताना, आम्हाला फक्त सिम्पटीमर.स्टॉप () सह टाइमर थांबवावा लागेल, होय, आम्ही पुन्हा चालू केले पाहिजे (आणि प्रगतीपट्टी 0 वर सेट केली पाहिजे).

पुढे

                 बटण {आयडी: बीनेक्स्ट मजकूर: "पुढचा" ऑनक्लिक केलेला: {if (पुढील == 0) {संख्या = क्रमांक + 1 लॉजिक.एक्स्टक्वेशन (संख्या) पुढील = 1}}}

आम्ही प्रश्न पास करण्यासाठी आधीच तयार केलेले फंक्शन वापरतो (नेक्स्ट प्रश्न).

संवाद

गेम समाप्त करण्यासाठी आम्ही संवाद वापरू, एकतर आम्ही जिंकलो म्हणून (आणखी काही प्रश्न उद्भवणार नाहीत) किंवा आपण गमावले (आम्ही mistakes चुका केल्या आहेत) संवाद वापरण्यासाठी मॉड्यूल आयात करणे आवश्यक आहे:

उबंटू.कंपोनेंट्स.पॉपअप्स 0.1 आयात करा

आम्ही एक संवाद तयार करणार आहोत ज्या आम्हाला सांगते की आपण गमावले:

        घटक {आयडी: संवाद संवाद {आयडी: संवाद शीर्षक: "गेम संपला!" मजकूर: "आपण सर्व जीव गमावले :(" बटण {मजकूर: "बाहेर पडा" ऑनक्लिक केलेले: Qt.quit () ton बटण {मजकूर: "स्टार्ट ओव्हर" रंग: उबंटूबोर्ड.ऑरेंज ऑनक्लिक केलेले: {num = 0; Logica.nextQuestion ( संख्या) npPoint = 0 जन्म = 0 पॉपअपइटिलस बंद (संवाद)}}}}

आमच्याकडे दोन बटणे आहेत, एक अनुप्रयोग बंद करण्यासाठी (Qt.quit ()) आणि दुसरे गेम सुरू करण्यासाठी. आपण व्हेरिएबल्सना 0 मध्ये प्रारंभ करतो आणि डायलॉग बंद करतो.

संवाद उघडण्यासाठी:

पॉपअपइल्स.ओपन (संवाद)

ते बंद करण्यासाठी:

पॉपअपइल्स कॉलोज (संवाद)

खेळाच्या शेवटी संवाद पाहूयाः

उबंटू टच

आपण अभिज्ञापक आणि जिथे जिथे विजय मिळतो असे म्हटले आहे तेथे मजकूर बदलून आपण एक समान संवाद तयार करू शकतो.

प्रश्न एकूण डिझाइन करीत आहे

जेव्हा आम्ही त्याची रचना करतो जीटीके, आम्ही एक संवाद तयार करतो, परंतु यावेळी आम्ही हे टॅबमध्ये करू, तरीही त्याची रचना समान असेल:

आपण पाहु शकतो की, प्रश्न लिहिण्यासाठी आम्ही एक लेबल, टेक्स्टअरीया, 4 टेक्स्टफिल्ड आणि 4 स्विच वापरू; शेवटी, प्रश्न जोडण्यासाठी एक बटण. चला फक्त कोड पाहू:

आयात करा QtQuick 2.0 आयात उबंटू. घटक 0.1 टॅब {शीर्षक: i18n.tr ("+ प्रश्न") पृष्ठ {आयडी: पृष्ठ जोडा कॉलम {अँकर.टॉप: पृष्ठअॅड.टॉप अँकर.टॉपमार्जिन: 50 अंतरः 15 रुंदी: पालक.विंदीची उंची: पॅरेंट.हाइट - Lab० लेबल-आयडी: प्रश्न मजकूर: "डेटाबेसमध्ये एक प्रश्न जोडा:" अँकर्स. हरिझोन्टल सेंटर: पॅरेंट .होरिजॉन्टल सेंटर फॉन्टसाइज: "मोठा"} टेक्स्टअरीया {रुंदी: पालक.विड्थ - २० उंची: युनिट.गु (50) कंटेंटविड्थ: यूनिट्स.गु ()०) कंटेंटहाइट: युनिट.गु ()०) अँकरस हर्टिझंटर सेंटर: पॅरेंट .होरिजॉन्टल सेंटर ow रो {स्पेसिंग: १ an अँकर्स होरिजॉन्टल सेंटर: पॅरेंटर होर्झोन्टल सेंटर टेक्स्टफिल्ड {प्लेसहोल्डरटेक्स्ट: "प्रतिसाद १" रुंदी: 20०० اور} स्विच {चेक केलेः चुकीचे} ow पंक्ती ac अंतरः 12 अँकरसॉरिजॉन्टलकेंटर: पालकहोरिजॉन्टल सेंटर टेक्स्टफिल्ड {प्लेसहोल्डर पाठ: "प्रतिसाद 30" रुंदी: 60} स्विच {चेक: चुकीचे} ow पंक्ती ac अंतरः 15 अँकरसॉरिजॉन्टल सेंटर: पालक. क्षैतिज सेंटर टेक्स्टफिल्ड {प्लेसहोल्डर टेक्स्ट: "प्रतिसाद 1" रुंदी: 300} स्विच {चेक केले: खोटे} ow रो {अंतरः 15 अँकरसॉरिझोन्टर सेंटर: पॅरेंटरहोरिजॉन्टल सेंटर टेक्स्टफिल्ड {प्लेसहोल्डर टेक्स्ट: "प्रतिसाद 2" रुंदी: 300} स्विच {चेक केलेले: चुकीचे} ton बटण {मजकूर: "जोडा +" अँकरस होरिजॉन्टल सेंटर: पॅरेंट.होरिजॉन्टल सेंटर रूंदी: पॅरेंट.विड्थ - 15}}}}
कोडबद्दल काही शंका असल्यास आपल्याला टिप्पणी आधीपासूनच माहित आहे

ते कसे दिसते ते पाहू:

2014-07-24 16:54:37 पासून कॅप्चर करा

जर आपण आता स्विचची चाचणी घेतली तर आम्ही त्या सर्वांना योग्य प्रश्न म्हणून चिन्हांकित करू शकतो आणि आपण केवळ एकच असू शकतो म्हणून आम्ही पुढील गोष्टी करू: आम्ही प्रत्येक स्विचला एक अभिज्ञापक प्रदान करण्यास सक्षम आहोत (टेक्स्टफील्ड्स मध्ये देखील जतन करण्यासाठी सामग्री प्राप्त करणे आवश्यक आहे. आपल्या उत्तरानुसार डेटाबेस) आणि जेव्हा आम्ही त्यावर क्लिक करतो तेव्हा आम्ही इतर सर्व चेक = चुकीच्या मोडमध्ये ठेवू:

             पंक्ती {अंतरः 15 अँकरस.हॉरिजॉन्टलकेंटर: पॅरेन्टहोरिजॉन्टलकेंटर टेक्स्टफिल्ड {आयडी: रेस 1 प्लेसहोल्डर पाठ: "प्रतिसाद 1" रुंदी: 300} स्विच {आयडी: स्व 1 चेक केले: चुकीचे ऑनक्लिक केलेले: {if (sw1.checked == true) {sw2. चेक केलेले = चुकीचे sw3.checked = खोटे sw4.checked = खोटे}}}}

जर आपण आत्ताच प्रयत्न केला तर आपण पाहू की आपण केवळ कसे चिन्हांकित करू.


लेखाची सामग्री आमच्या तत्त्वांचे पालन करते संपादकीय नीति. त्रुटी नोंदविण्यासाठी क्लिक करा येथे.

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

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

आपला ई-मेल पत्ता प्रकाशित केला जाणार नाही.

*

*

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

  1.   vr_rv म्हणाले

    खूप चांगले आणि सुस्पष्ट लेख.
    तसे, आपण उबंटुसाठी क्यूएमएलमध्ये कसे विकसित करावे हे शिकण्यासाठी स्पॅनिश भाषेत असलेली काही पुस्तके, यूट्यूब चॅनेल किंवा ब्लॉग्जची शिफारस करता.

    1.    lolbimbo म्हणाले

      बरं, स्पॅनिशमध्ये नक्कीच काही यू ट्यूब किंवा विचित्र ब्लॉगवर काही ट्यूटोरियल आहेत, पण सत्य हे आहे की तेथे फार कमी सामग्री आहे.

      मी पहात आहे की आपण नोकियाद्वारे कनेक्ट आहात जर ते शेवटचे प्रतीक असेल तर आपण क्यूएमएलसह अनुप्रयोग देखील तयार करू शकता, खरं तर मी शिकलो तेच, येथे नोकिया विकास वेबसाइट आहेः http://developer.nokia.com/ (ट्यूटोरियल आहेत, पूर्ण प्रकल्प ...)

  2.   नेस्टर म्हणाले

    उत्कृष्ट पोस्ट मालिका, इनपुटबद्दल धन्यवाद.

  3.   माती म्हणाले

    प्रशिक्षण दिल्याबद्दल धन्यवाद,
    परंतु डेटाबेसमध्ये प्रश्न आणि उत्तरे कशी जोडली जातात हे मला समजत नाही.
    जोडा बटणासह.
    सगळ्यासाठी धन्यवाद.