एक साधा टोडो अ‍ॅप तयार करण्यासाठी पायक्यूटी 5 मॉडेलव्यू आर्किटेक्चरचा वापर करून मॅक अ‍ॅप स्टोअरवरील टोडो

व्ह्यूजमध्ये डेटा प्रदर्शित करण्यासाठी मॉडेल व्ह्यू आर्किटेक्चर क्यूटी एस एमव्हीसी-सारखे इंटरफेस

चालू असलेले अॅप खाली दर्शविले आहे.

TODO 4+

बर्‍याच वर्षांपासून मी हा अनुप्रयोग माझ्या आयपॅड, माझा आयफोन आणि माझ्या मॅकबुकप्रोवर वापरला. जर ते iOS वर उत्तम प्रकारे कार्य करत राहिले तर असे दिसते की त्याने मॅकोसच्या उत्क्रांतीचे पूर्णपणे अनुसरण केले नाही.
ते स्थापित करण्यात कोणतीही अडचण नाही. परंतु मॅकोसवरील टूडलडोसह समक्रमित करणे यापुढे शक्य नाही, जरी ते आयओएसवर शक्य आहे: समान अभिज्ञापक ओळखले जात नाहीत.
म्हणूनच ते माझ्यासाठी अनावश्यक बनते … आणि अप्पिगोची मदत माझ्या विनंतीला उत्तर देण्याची घाई करीत नाही असे वाटत नाही. हे लक्षात घेणे नेहमीच अप्रिय आहे की ग्राहकांची संकल्पना दररोज त्याचे मूल्य कमी करते.

पिसा डी

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

सर्लेपॉईंट, 12/13/2011

सिंक्रो आता निकेल आहे

मी सिंक्रोनाइझेशनच्या आधी पकडले जे हळू होते, वाईट रीतीने चालले, इ. पण आता आयक्लॉडसह, ते मला उत्तम प्रकारे अनुकूल करते.

काही संभाव्य सुधारणा: अधिक प्रदर्शन सेटिंग्ज.
– वापरकर्ता काय वापरतो ते केवळ प्रदर्शित करण्यासाठी. उदाहरणार्थ मी संदर्भ किंवा लेबले वापरत नाही (अद्याप कोणत्याही परिस्थितीत नाही) आणि मी यापुढे माझ्या टोडोला “प्रदूषित” करणारे हे पर्याय प्रदर्शित करू इच्छित नाही. माझ्या दैनंदिन नोट्ससाठी मला फक्त “तारीख / प्राधान्य / यादी / प्रकार” पाहिजे आहे आणि मी क्वचितच वापरत असलेल्या पर्यायांसाठी उजवे क्लिक करा
– आणि त्याउलट मला तारीख, प्राधान्य, यादी निवडण्यासाठी ड्रॉप -डाऊन मेनूपेक्षा एक साधा पीएलएसयू प्रदर्शन आवडेल … माझ्याकडे फक्त तीन याद्या असल्यास, नंतर तीन बटणे प्रदर्शित करण्यासाठी पुरेसे असतील आणि मी माझी यादी निवडू शकेन ड्रॉप -डाऊन मेनूवर क्लिक करण्याऐवजी एका क्लिकसह, नाव शोधा आणि त्यावर क्लिक करा. (प्राधान्यासाठी, विशेषत: आम्ही टोडोच्या यादीवरील अगदी व्हिज्युअल रेखांकनातून पर्यायांमध्ये नावाच्या निवडीकडे जाऊ जे फार नैसर्गिक नाही.

हे एर्गोनॉमिक्स तपशील आहेत. मला टोडोची साधेपणा आणि कार्यक्षमता आवडते, म्हणून मला आवडेल की हे आणखी सोपे असणे अधिक कॉन्फिगर करण्यायोग्य असू शकते.

गोपनीयता अॅप

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

मॉडेल व्ह्यू आर्किटेक्चर
दृश्यांमध्ये डेटा प्रदर्शित करण्यासाठी क्यूटीचा एमव्हीसी सारखा इंटरफेस

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

कृतज्ञतापूर्वक क्यूटीकडे यासाठी एक उपाय आहे – मॉडेल व्ह्यूज. मॉडेल व्ह्यूज मानक प्रदर्शन विजेट्ससाठी एक शक्तिशाली पर्याय आहेत, जे डेटा स्रोतांशी संवाद साधण्यासाठी नियमित मॉडेल इंटरफेस वापरतात – साध्या डेटा स्ट्रक्चर्सपासून ते बाह्य डेटाबेसपर्यंत. हे आपला डेटा अलग ठेवते, आपल्या आवडीच्या कोणत्याही संरचनेत ठेवण्याची परवानगी देते, जेव्हा दृश्य सादरीकरण आणि अद्यतनांची काळजी घेते.

हे ट्यूटोरियल क्यूटीच्या मॉडेलव्यू आर्किटेक्चरच्या मुख्य बाबींचा परिचय देते आणि पायक्यूटी 5 मध्ये साधे डेस्कटॉप टोडो अनुप्रयोग तयार करण्यासाठी त्याचा वापर करते.

मॉडेल दृश्य नियंत्रक

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

एमव्हीसी डिझाइन पॅटेन तीन प्रमुख घटक –

  • मॉडेल अ‍ॅप कार्यरत डेटा रचना आहे.
  • दृश्य वापरकर्त्यास दर्शविल्याप्रमाणे माहितीचे कोणतेही प्रतिनिधित्व आहे, जेथे ग्राफिकल किंवा टेबल आहे. समान डेटा मॉडेलच्या एकाधिक दृश्यांना परवानगी आहे.
  • नियंत्रण मॉडेल किंवा दृश्यासाठी कमांडमध्ये रूपांतरित करून वापरकर्त्याचे इनपुट स्वीकारते.

हे क्यूटी लँड लँड द व्ह्यू अँड कंट्रोलरमधील फरक थोडा गोंधळात पडतो. क्यूटी वापरकर्त्याकडून इनपुट इव्हेंट स्वीकारते (ओएस मार्गे) आणि हे हाताळण्यासाठी विजेट्स (कंट्रोलर) कडे प्रतिनिधीत्व करते. तथापि, विजेट्स वापरकर्त्यास सद्य स्थितीचे सादरीकरण देखील हाताळतात. लाइन कोठे काढायची याबद्दल पीडित करण्याऐवजी, क्यूटी-एस-स्पीकमध्ये दृश्य आणि कंट्रोलर आयएलएड विलीन केले गेले आहेत टॉग्ड टू टू मॉडेल/व्ह्यूकंट्रोलर आर्किटेक्चर-कॉल केलेले “मॉडेल व्ह्यू” साधेपणासाठी.

महत्त्वाचे म्हणजे, दरम्यानचा फरक डेटा आणि ते कसे सादर केले जाते संरक्षित आहे.

मॉडेल दृश्य

मॉडेल डेटा स्टोअर आणि व्ह्यूकंट्रोलर दरम्यान इंटरफेस म्हणून कार्य करते. मॉडेलमध्ये डेटा (किंवा त्याचा संदर्भ) आहे आणि हा डेटा प्रमाणित एपीआयद्वारे सादर करतो जो दृश्य वापरतो आणि वापरकर्त्यास सादर करतो. एकाधिक दृश्ये समान डेटा सामायिक करू शकतात, ती पूर्णपणे भिन्न प्रकारे सादर करतात.

आपण आपल्या मॉडेलसाठी कोणतेही “डेटा स्टोअर” वापरू शकता, उदाहरणार्थ मानक पायथन यादी किंवा शब्दकोष किंवा डेटाबेस (ई मार्गे (ई द्वारे).जी. Sqlalchemy) – हे आपल्यावर योग्य आहे.

दोन भाग मूलत: जबाबदार आहेत –

  1. चहा मॉडेल डेटा, किंवा त्याचा संदर्भ संचयित करतो आणि वैयक्तिक किंवा रेकॉर्डची श्रेणी परत करतो आणि संबंधित मेटाडेटा किंवा प्रदर्शन सूचना.
  2. चहा दृश्य मॉडेलकडून डेटाची विनंती करते आणि विजेटवर जे परत केले जाते ते प्रदर्शित करते.

दस्तऐवजीकरणात क्यूटी आर्किटेक्चरची सखोल चर्चा आहे.

पायनस्टॉलरसह पायथन जीयूआय अनुप्रयोगांचे पॅकेजिंग पूर्ण मार्गदर्शक.

पायनस्टॉलरसह पायथन अनुप्रयोग पॅकेजिंग

[[सूट.सवलत_पीसी]]] पुढील [सूट.कालावधी]] [सवलत.वर्णन]] कोडसह [सूट.कूपन_कोड]]

खरेदी पॉवर पॅरिटी

[[देश]] मधील विकसकांना [[सूट) मिळेल.सवलत_पीसी]]] कोडसह सर्व पुस्तके आणि अभ्यासक्रमांवर [सूट.कूपन_कोड]]

एक साधे मॉडेल दृश्य – एक टोडो यादी

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

Ui

साधा यूआय कुरूप आउटिंग क्यूटी क्रिएटर होता आणि मेनविंडो म्हणून जतन केला.ui . चहा .यूआय फाईल आणि इतर सर्व भाग खाली डाउनलोड केले जाऊ शकतात.

क्यूटी क्रिएटरमध्ये एक साधे टोडो अॅप डिझाइन करीत आहे

क्यूटी क्रिएटरमध्ये एक साधे टोडो अॅप डिझाइन करीत आहे

चालू असलेले अॅप खाली दर्शविले आहे.

चालू टोडो जीयूआय (अद्याप काहीही कार्य करत नाही)

चालू टोडो जीयूआय (अद्याप काहीही कार्य करत नाही)

इंटरफेसमध्ये उपलब्ध विजेट आम्ही खाली दिलेल्या सारणीमध्ये दर्शविलेल्या आयडी दिल्या आहेत.

ओब्जुच प्रकार वर्णन
टॉडव्यू QlistView सध्याच्या टोडोसची यादी
TODODIT Qlinedit नवीन टोडो आयटम तयार करण्यासाठी मजकूर इनपुट
अ‍ॅडबटन क्यूपुशबटन नवीन टोडो तयार करा, ते टोडोस यादीमध्ये जोडा
हटवाबटन क्यूपुशबटन सध्याचे निवडलेले टोडो हटवा, ते टोडोस सूचीमधून काढून
पूर्णबट्टन क्यूपुशबटन पूर्ण केल्याप्रमाणे सध्याचे निवडलेले टोडो चिन्हांकित करा

आम्ही नंतर अनुप्रयोग लॉजिक शोधण्यासाठी या अभिज्ञापकांचा वापर करू.

मॉडेल

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

या उदाहरणासाठी आम्ही क्यूएलस्ट्यूव्ह्यूचा निकाल प्रदर्शित करीत आहोत . यासाठी जुळणारे बेस मॉडेल क्यूएबीस्ट्रॅक्टलिस्टमॉडल आहे . आमच्या मॉडेलची बाह्यरेखा व्याख्या खाली दर्शविली आहे.

वर्ग टोडोमोडेल (क्यूटीकोर).क्यूएबीस्ट्रॅक्टलिस्टमॉडल): डेफ __init __ (सेल्फ, *आर्गेस, टोडोस = काहीही नाही, ** क्वार्ज): सुपर (टॉडोमॉडल, सेल्फ).__init __ (*आर्गेस, ** क्वारग्स) सेल्फ.TODOS = TODOS किंवा [] डीफ डेटा (सेल्फ, इंडेक्स, भूमिका): जर भूमिका == क्यूटी.डिस्प्लेरोल: # डेटा स्ट्रक्चरसाठी खाली पहा. स्थिती, मजकूर = स्वत:.टोडोस [अनुक्रमणिका.पंक्ती ()] # फक्त टोडो मजकूर परत करा. परत मजकूर डीफ रोकाउंट (सेल्फ, इंडेक्स): रिटर्न लेन (सेल्फ.टोडोस) 

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

.टोडोस यादी

आमच्या मॉडेलसाठी डेटा स्टोअर आहे .टोडोस, एक साधी पायथन यादी ज्यामध्ये आम्ही स्वरूपात मूल्यांचा टपल [(बूल, एसटीआर), (बूल, एसटीआर), (बूल, एसटीआर)] जिथे बूल आहे तेथे संचयित करू म्हणून दिलेल्या एंट्रीची स्थिती आणि एसटीआर हा टोडोचा मजकूर आहे.

आम्ही स्वत: ला आरंभ करतो.स्टार्टअपवरील रिक्त सूचीवर टोडो, जोपर्यंत सूची टॉडोस कीवर्ड युक्तिवादाद्वारे प्रवेश केली जात नाही.

स्व.TODOS = TODOS किंवा [] स्वत: ला सेट करेल.जर ते असेल तर प्रदान केलेल्या टॉडोस मूल्याचे टोडोस Truty (मी.ई. रिक्त यादी व्यतिरिक्त इतर काहीही, बुलियन खोटे किंवा डीफॉल्ट मूल्य काहीही नाही), अन्यथा ते रिक्त यादीमध्ये सेट केले जाईल [] .

या मॉडेलचा एक विमा तयार करण्यासाठी आम्ही सोपे करू शकतो –

मॉडेल = टोडोमॉडल () # रिक्त टोडो यादी तयार करा 

किंवा विद्यमान यादीमध्ये पास करण्यासाठी –

TODOS = [(खोटे, 'एक आयटम'), (खोटे, 'आणखी एक आयटम')] मॉडेल = टोडोमॉडल (टोडोस) 

.रोकाउंट ()

चहा .सध्याच्या डेटामध्ये पंक्तींची संख्या मिळविण्यासाठी ROWCOUNT () पद्धत दृश्यासह कॉल केली जाते. आता डेटा स्टोअर (पंक्ती गणना -1) पुन्हा करू शकणार्‍या जास्तीत जास्त निर्देशांकासाठी हे आवश्यक आहे. विक्री आम्ही पायथन सूची आमच्या डेटा स्टोअर म्हणून वापरत आहोत, यासाठी रिटर्न व्हॅल्यू म्हणजे सूचीचे फक्त लेन ().

.डेटा ()

हे आपल्या मॉडेलचे मूळ आहे, जे दृश्यावरील डेटासाठी विनंत्या हाताळते आणि योग्य निकाल परत करते. हे दोन पॅरामीटर्स इंडेक्स आणि भूमिका प्राप्त करते.

अनुक्रमणिका म्हणजे डेटाची स्थिती/निर्देशांक आहे ज्यास दृश्य विनंती करीत आहे, दोन पद्धतींनी प्रवेशयोग्य आहे .पंक्ती () आणि .स्तंभ () जे प्रत्येक परिमाणात स्थान देतात.

आमच्या क्यूएलिस्टव्यूसाठी कॉलम नेहमीच 0 असतो आणि त्याकडे दुर्लक्ष केले जाऊ शकते, परंतु आपल्याला हे स्प्रेडशीट दृश्यात 2 डी डेटासाठी वापरण्याची आवश्यकता आहे.

भूमिका दर्शविणारा ध्वज आहे प्रकार डेटाचा दृश्य विनंती करीत आहे. कारण कारण .डेटा () पद्धतीची प्रत्यक्षात फक्त कोर डेटापेक्षा अधिक जबाबदारी असते. हे शैली माहिती, टूलटिप्स, स्टेटस बार इ. साठी विनंत्या देखील हाताळते. – बेसालली काहीही जे डेटाद्वारेच माहिती दिली जाऊ शकते.

क्यूटीचे नाव.डिस्प्लेरोल थोडा विचित्र आहे, परंतु हे सूचित करते की दृश्य आम्हाला विचारत आहे “कृपया मला प्रदर्शनासाठी डेटा द्या”. इतरही आहेत भूमिका स्टाईलिंग विनंत्यांसाठी किंवा “संपादन-तयार” स्वरूपात डेटाची विनंती करण्यासाठी डेटा प्राप्त करू शकेल.

भूमिका मूल्य वर्णन
Qt.प्रदर्शन 0 मजकूराच्या स्वरूपात सादर केलेला की डेटा. (क्यूस्ट्रिंग)
Qt.सजावट 1 चिन्हाच्या रूपात सजावट म्हणून प्रस्तुत केलेला डेटा. (क्यूकोलॉर, किकॉन किंवा क्यूपीएक्समॅप)
Qt.संपादकीय 2 संपादकात संपादनासाठी औपचारिक अनुसरणातील डेटा. (क्यूस्ट्रिंग)
Qt.टूलटिप्रोल 3 आयटमच्या टूलटिपमध्ये प्रदर्शित केलेला डेटा. (क्यूस्ट्रिंग)
Qt.स्टॅटस्टिप्रोल 4 स्थिती बारमध्ये प्रदर्शित डेटा. (क्यूस्ट्रिंग)
Qt.व्हॉट्सट्रोल 5 “हे काय आहे” मधील आयटमसाठी डेटा प्रदर्शित?” फॅशन. (क्यूस्ट्रिंग)
Qt.साइजहिंट्रोल 13 दृश्यांना पुरविल्या जाणार्‍या आयटमसाठी आकाराचा इशारा. (क्यूसाइझ)

उपलब्ध च्या संपूर्ण यादीसाठी भूमिका की आपण क्यूटी आयटीएमडीएटारोल दस्तऐवजीकरण पाहू शकता. आमची टोडो यादी केवळ क्यूटी वापरत असेल.डिस्प्लेरोल आणि क्यूटी.सजावट .

मूलभूत अंमलबजावणी

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

PYQT5 आयात क्यूटीकोर, क्यूटीजीयूआय, क्यूटीविजेट्स, पीविक्ट 5 पासून यूआयसी आयात आयात आयात करा.QTCORE आयात qt_creator_file = "मेनविंडो.ui "ui_mainwindow, qtbaseclass = uic.लोडुडुइप (क्यूटी_क्रिएटोर_फाइल) वर्ग टोडोमोडेल (क्यूटीकोर.क्यूएबीस्ट्रॅक्टलिस्टमॉडल): डेफ __init __ (सेल्फ, *आर्गेस, टोडोस = काहीही नाही, ** क्वार्ज): सुपर (टॉडोमॉडल, सेल्फ).__init __ (*आर्गेस, ** क्वारग्स) सेल्फ.TODOS = TODOS किंवा [] डीफ डेटा (सेल्फ, इंडेक्स, भूमिका): जर भूमिका == क्यूटी.डिस्प्लेरोल: स्थिती, मजकूर = स्वत:.टोडोस [अनुक्रमणिका.पंक्ती ()] मजकूर डीफ रोकाउंट (सेल्फ, इंडेक्स) रिटर्न लेन (सेल्फ (सेल्फ).टोडोस) क्लास मेनविंडो (क्यूटीविजेट्स.Qmainwindow, ui_mainwindow): def __init __ (सेल्फ): क्यूटीविजेट्स.कुमैनविंडो.__init __ (सेल्फ) ui_mainwindow.__init __ (स्वत:) स्वत:.Setupui (स्वत:) सेल्फ.मॉडेल = टोडोमोडेल () सेल्फ.टॉडव्यू.सेट मॉडेल (सेल्फ.मॉडेल) अॅप ​​= क्यूटीविजेट्स.क्यूप्लिकेशन (एसवायएस.आर्गव्ही) विंडो = मेनविंडो () विंडो.दर्शवा () अॅप.एक्झिक_ () 

आम्ही आमचे टोडोमॉडल पूर्वीप्रमाणे परिभाषित करतो आणि मेनविंडो ऑब्जेक्टला प्रारंभ करतो. मेनविंडोसाठी __init__ मध्ये आम्ही आमच्या टोडो मॉडेलचे एक उदाहरण तयार करतो आणि हे मॉडेल टॉडो_व्ह्यू वर सेट करतो . ही फाईल टोडो म्हणून जतन करा.पाय आणि त्यासह चालवा –

पायथन 3 टोडो.वेग 

अद्याप पाहण्यासारखे बरेच काही नसले तरी, क्यूएलिस्ट व्ह्यू आणि आमचे मॉडेल प्रत्यक्षात कार्यरत आहेत – जर आपण काही डीफॉल्ट डेटा जोडला तर आपल्याला ती सूचीमध्ये दिसेल.

स्व.मॉडेल = टोडोमोडेल (टोडोस = [(खोटे, 'माझे पहिले टोडो')))))) 

QlistView कठोर-कोडित टोडो आयटम दर्शवित आहे

QlistView कठोर-कोडित टोडो आयटम दर्शवित आहे

आपण यासारखे स्वहस्ते आयटम जोडत राहू शकता आणि ते क्यूएलिस्टव्ह्यूमध्ये क्रमाने दर्शविले जातील . पुढे आम्ही अनुप्रयोगातून आयटीएम जोडणे शक्य करतो.

प्रथम अ‍ॅड नावाच्या मेनविंडोवर एक नवीन पद्धत तयार करा . हा आमचा कॉलबॅक आहे जो नवीन टोडो म्हणून इनपुटमधून सध्याचा मजकूर जोडण्याची काळजी घेईल. ही पद्धत अ‍ॅडबटनशी जोडा.__Init__ ब्लॉकच्या शेवटी दाबलेले सिग्नल.

वर्ग मेनविंडो (क्यूटीविजेट्स).Qmainwindow, ui_mainwindow): def __init __ (सेल्फ): क्यूटीविजेट्स.कुमैनविंडो.__init __ (सेल्फ) ui_mainwindow.__init __ (स्वत:) स्वत:.Setupui (स्वत:) सेल्फ.मॉडेल = टोडोमोडेल () सेल्फ.टॉडव्यू.सेट मॉडेल (सेल्फ.मॉडेल) # बटण कनेक्ट करा. स्व.अ‍ॅडबटन.दाबा.कनेक्ट (स्वत: ची.जोडा) डीफ जोडा (सेल्फ): "" आमच्या टोडो सूचीमध्ये एक आयटम जोडा, क्यूलाइनडिटमधून मजकूर मिळवित आहे .Todoedit आणि तेथे ते साफ करीत आहे. "" "मजकूर = स्वत:.TODODIT.मजकूर () मजकूर असल्यास: # रिक्त तार जोडू नका. # मॉडेलद्वारे सूचीमध्ये प्रवेश करा. स्व.मॉडेल.टोडोस.अ‍ॅपेंड ((खोटे, मजकूर)) # ट्रिगर रीफ्रेश. स्व.मॉडेल.लेआउटचेंज.उत्सर्जन () # इनपुट रिक्त.TODODIT.सेटटेक्स्ट ("") 

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

जर फक्त डेटा बदलला असेल, परंतु पंक्ती/स्तंभांची संख्या अप्रभावित असेल तर आपण वापरू शकता .त्याऐवजी डेटॅचॅन्गेड () सिग्नल. हे संपूर्ण दृश्य दृश्याचे पुनर्निर्मिती टाळण्यासाठी वरच्या-डाव्या आणि तळाशी-उजव्या भाड्याने वापरून डेटामधील बदललेल्या प्रदेशाची व्याख्या देखील करते.

इतर कृती आकर्षित करणे

आम्ही आता उर्वरित बटणाचे सिग्नल कनेक्ट करू शकतो आणि कार्यप्रदर्शनासाठी मदत जोडू शकतो हटवा आणि पूर्ण ऑपरेशन्स. आम्ही पूर्वीप्रमाणे __init__ ब्लॉकमध्ये बटण सिग्नल जोडतो.

 स्व.अ‍ॅडबटन.दाबा.कनेक्ट (स्वत: ची.जोडा) स्व.हटवाबटन.दाबा.कनेक्ट (स्वत: ची.स्वतः हटवा.पूर्णबट्टन.दाबा.कनेक्ट (स्वत: ची.पूर्ण) 

नंतर खालीलप्रमाणे नवीन हटविण्याची पद्धत परिभाषित करा –

 डीफ हटवा (सेल्फ): अनुक्रमणिका = स्वत:.टॉडव्यू.सिलेक्टेडडिन्डेक्सेस () जर अनुक्रमणिका: # अनुक्रमणिका एकल-निवडलेल्या एकाच आयटमची यादी आहे. अनुक्रमणिका = अनुक्रमणिका [0] # आयटम काढा आणि रीफ्रेश करा. डेल सेल्फ.मॉडेल.टोडोस [अनुक्रमणिका.पंक्ती ()] सेल्फ.मॉडेल.लेआउटचेंज.उत्सर्जन () # निवड साफ करा (कारण ती लांब वैध नाही). स्व.टॉडव्यू.क्लॅरेकेलेक्शन () 

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

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

आपण हे स्मार्ट बनवण्याचा प्रयत्न करू शकता आणि त्याऐवजी सूचीतील शेवटचा आयटम निवडा

संपूर्ण पद्धतीला यासारख्या आवडल्या आहेत –

 डीफ पूर्ण (स्वत:): अनुक्रमणिका = स्वत:.टॉडव्यू.सेलेक्ट्र्रेड इंडेक्सेस () जर अनुक्रमणिका: अनुक्रमणिका = अनुक्रमणिका [0] पंक्ती = अनुक्रमणिका.पंक्ती () स्थिती, मजकूर = स्वत:.मॉडेल.टोडोस [पंक्ती] सेल्फ.मॉडेल.टोडोस [पंक्ती] = (खरे, मजकूर) # .डेटाचॅन्गेडने उच्च-डाव्या आणि तळाशी उजवीकडे नेले, जे एकाच निवडीसाठी # समान आहेत. स्व.मॉडेल.datachanged.उत्सर्जन (निर्देशांक, निर्देशांक) # निवड साफ करा (कारण ती लांब वैध नाही). स्व.टॉडव्यू.क्लॅरेकेलेक्शन () 

हे हटविण्यासारखे समान अनुक्रमणिका वापरते, परंतु यावेळी आम्ही मॉडेलमधून आयटम आणतो .टोडोस सूची आणि नंतर स्थिती सत्य सह पुनर्स्थित करा .

आमचा डेटा पायथन ट्यूपल्स म्हणून संग्रहित केल्यामुळे आम्हाला हे आणण्याचे आणि पुनरावृत्ती करावे लागेल जे सुधारित केले जाऊ शकत नाही.

येथे भिन्न की व्हीएस. मानक क्यूटी विजेट म्हणजे आम्ही आमच्या डेटामध्ये थेट बदल करतो आणि हॅसुर्डला बदलणार्‍या क्यूटीला सहजपणे सूचित करण्याची आवश्यकता आहे – विजेट स्थिती अद्यतनित करणे स्वयंचलितपणे हाताळले जाते.

क्यूटी वापरणे.सजावट

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

टिक = क्यूटीगुई.क्यूमगे ('टिक.पीएनजी ') वर्ग टोडोमोडेल (क्यूटीकोर.क्यूएबीस्ट्रॅक्टलिस्टमॉडल): डेफ __init __ (सेल्फ, *आर्गेस, टोडोस = काहीही नाही, ** क्वार्ज): सुपर (टॉडोमॉडल, सेल्फ).__init __ (*आर्गेस, ** क्वारग्स) सेल्फ.TODOS = TODOS किंवा [] डीफ डेटा (सेल्फ, इंडेक्स, भूमिका): जर भूमिका == क्यूटी.डिस्प्लेरोल: _, मजकूर = स्वत:.टोडोस [अनुक्रमणिका.पंक्ती ()] भूमिका असल्यास मजकूर परत करा == क्यूटी.सजावटरोल: स्थिती, _ = स्वत:.टोडोस [अनुक्रमणिका.पंक्ती ()] स्थिती असल्यास: रिटर्न टिक डीफ रोकाउंट (सेल्फ, इंडेक्स): रिटर्न लेन (सेल्फ.टोडोस) 

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

मी वापरत असलेले चिन्ह पी द्वारा सेट केलेल्या फ्यूगमधून घेतले आहे.युसुकेकमियामाने

आय आयकॉनचा इन्टोस्टॅड आपण रंगात परत येऊ शकता, ई.जी. QTGUI.क्यू कलर (‘ग्रीन’) जो सॉलिड स्क्वेअर म्हणून काढला जाईल.

अ‍ॅप चालविणे आपण आता आयटम पूर्ण म्हणून चिन्हांकित करण्यास सक्षम असावे.

टोडोस पूर्ण चिन्हांकित

टोडोस पूर्ण चिन्हांकित

एक चिकाटी डेटा स्टोअर

आमचा टोडो अॅप छान काम करतो, परंतु त्यात एक घातक दोष आहे- झेनच्या अल्प-मुदतीच्या भावनांना योगदान देताना आपण काही करण्यासारखे नसल्याचा विचार करत असताना आपण अनुप्रयोग बंद करताच आपल्या टॉडोसला विसरतो, दीर्घकालीन हे कदाचित एक आहे. वाईट कल्पना.

सोल्यूशन म्हणजे सतत डेटा स्टोअरची काही आउटिंग लागू करणे. सर्वात सोपा दृष्टीकोन एक सोपा फाईल स्टोअर आहे, जिथे आम्ही स्टार्टअपवर जेएसओएन किंवा लोणच्या फाईलमधून आयटम लोड करतो आणि बदलावर परत लिहितो.

हे करण्यासाठी आम्ही आमच्या हातात दोन नवीन पद्धती परिभाषित करतो . हे जेएसओएन फाइल नावाच्या डेटामधील डेटा लोड करा.जेएसओएन (ते अस्तित्त्वात असल्यास, त्रुटीकडे दुर्लक्ष करत असल्यास त्याकडे दुर्लक्ष करणे).मॉडेल.टोडोस आणि सध्याचे स्वत: लिहा.मॉडेल.अनुक्रमे त्याच फाईलवर टोडोस.

 डीफ लोड (सेल्फ): प्रयत्न करा: ओपन ('डेटासह).json ',' r ') एफ: सेल्फ.मॉडेल.TODOS = JSON.लोड (एफ) अपवाद अपवाद: पास डीफ सेव्ह (सेल्फ): ओपन ('डेटासह).json ',' डब्ल्यू ') एफ: डेटा = जेएसओएन.डंप (स्व.मॉडेल.टोडोस, एफ) 

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

अंतिम कोड असे दिसते –

पायक्यूटी 5 आयात क्यूटीकोर, क्यूटीजीयूआय, क्यूटीविजेट्स, पीवायक्यूटी 5 वरून आयात आयात जेएसओएन आयात करा.QTCORE आयात qt_creator_file = "मेनविंडो.ui "ui_mainwindow, qtbaseclass = uic.लोड्यूड्यूस टाइप (QT_CREATOR_FILE) टिक = QTGUI.क्यूमगे ('टिक.पीएनजी ') वर्ग टोडोमोडेल (क्यूटीकोर.क्यूएबीस्ट्रॅक्टलिस्टमॉडल): डेफ __init __ (सेल्फ, *आर्गेस, टोडोस = काहीही नाही, ** क्वार्ज): सुपर (टॉडोमॉडल, सेल्फ).__init __ (*आर्गेस, ** क्वारग्स) सेल्फ.TODOS = TODOS किंवा [] डीफ डेटा (सेल्फ, इंडेक्स, भूमिका): जर भूमिका == क्यूटी.डिस्प्लेरोल: _, मजकूर = स्वत:.टोडोस [अनुक्रमणिका.पंक्ती ()] भूमिका असल्यास मजकूर परत करा == क्यूटी.सजावटरोल: स्थिती, _ = स्वत:.टोडोस [अनुक्रमणिका.पंक्ती ()] स्थिती असल्यास: रिटर्न टिक डीफ रोकाउंट (सेल्फ, इंडेक्स): रिटर्न लेन (सेल्फ.टोडोस) क्लास मेनविंडो (क्यूटीविजेट्स.Qmainwindow, ui_mainwindow): def __init __ (सेल्फ): सुपर (मेनविंडो, सेल्फ).__Init __ () स्वत:.Setupui (स्वत:) सेल्फ.मॉडेल = टोडोमोडेल () सेल्फ.लोड () सेल्फ.टॉडव्यू.सेट मॉडेल (सेल्फ.मॉडेल) सेल्फ.अ‍ॅडबटन.दाबा.कनेक्ट (स्वत: ची.जोडा) स्व.हटवाबटन.दाबा.कनेक्ट (स्वत: ची.स्वतः हटवा.पूर्णबट्टन.दाबा.कनेक्ट (स्वत: ची.पूर्ण) डीफ जोडा (सेल्फ): "" "आमच्या टोडो सूचीमध्ये एक आयटम जोडा, क्यूलाइनडिटमधून मजकूर मिळवित आहे .Todoedit आणि तेथे ते साफ करीत आहे. "" "मजकूर = स्वत:.TODODIT.मजकूर () मजकूर असल्यास: # रिक्त तार जोडू नका. # मॉडेलद्वारे सूचीमध्ये प्रवेश करा. स्व.मॉडेल.टोडोस.अ‍ॅपेंड ((खोटे, मजकूर)) # ट्रिगर रीफ्रेश. स्व.मॉडेल.लेआउटचेंज.उत्सर्जन () # इनपुट रिक्त.TODODIT.सेटटेक्स्ट ("") सेल्फ.सेव्ह () डीफ हटवा (सेल्फ): अनुक्रमणिका = स्वत:.टॉडव्यू.सिलेक्टेडडिन्डेक्सेस () जर अनुक्रमणिका: # अनुक्रमणिका एकल-निवडलेल्या एकाच आयटमची यादी आहे. अनुक्रमणिका = अनुक्रमणिका [0] # आयटम काढा आणि रीफ्रेश करा. डेल सेल्फ.मॉडेल.टोडोस [अनुक्रमणिका.पंक्ती ()] सेल्फ.मॉडेल.लेआउटचेंज.उत्सर्जन () # निवड साफ करा (कारण ती लांब वैध नाही). स्व.टॉडव्यू.क्लॅरेकेलेक्शन () सेल्फ.सेव्ह () डीफ पूर्ण (सेल्फ): अनुक्रमणिका = स्वत:.टॉडव्यू.सेलेक्ट्र्रेड इंडेक्सेस () जर अनुक्रमणिका: अनुक्रमणिका = अनुक्रमणिका [0] पंक्ती = अनुक्रमणिका.पंक्ती () स्थिती, मजकूर = स्वत:.मॉडेल.टोडोस [पंक्ती] सेल्फ.मॉडेल.टोडोस [पंक्ती] = (खरे, मजकूर) # .डेटाचॅन्गेडने उच्च-डाव्या आणि तळाशी उजवीकडे नेले, जे एकाच निवडीसाठी # समान आहेत. स्व.मॉडेल.datachanged.उत्सर्जन (निर्देशांक, निर्देशांक) # निवड साफ करा (कारण ती लांब वैध नाही). स्व.टॉडव्यू.क्लॅरेकेलेक्शन () सेल्फ.सेव्ह () डीफ लोड (सेल्फ): प्रयत्न करा: ओपनसह ('डेटा.db ',' r ') एफ: सेल्फ.मॉडेल.TODOS = JSON.लोड (एफ) अपवाद अपवाद: पास डीफ सेव्ह (सेल्फ): ओपन ('डेटासह).डीबी ',' डब्ल्यू ') एफ: डेटा = जेएसओएन.डंप (स्व.मॉडेल.TODOS, f) अ‍ॅप = qtwidgets.क्यूप्लिकेशन (एसवायएस.आर्गव्ही) विंडो = मेनविंडो () विंडो.दर्शवा () अॅप.एक्झिक_ () 

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

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

बीसीआर बद्दल.सीएक्स:

बीसीआर.सीएक्स एक ब्राझिलियन तंत्रज्ञान स्टार्टअप आहे, दोन्ही व्यवसाय आउटसोर्सिंग प्रक्रिया (बीपीओ) आणि व्यवसाय वातावरण आउटसोर्सिंग (बीओ) या दोहोंमध्ये विशेष आहे, मुख्यत: मागणी निर्मिती, ग्राहक अनुभव, संप्रेषण, वापरकर्त्याचे समर्थन आणि समाधान यावर लक्ष केंद्रित करते.

वर्णन:

टोडो अॅप वर्क डे दरम्यान एजंटच्या नोट्स संचयित करण्याचा एक द्रुत, सुरक्षित आणि वापरकर्ता-अनुकूल मार्ग म्हणून विकसित केला गेला होता.

प्रत्येक वैयक्तिक तिकिट किंवा ग्राहकांच्या आधारे आपली स्वतःची कार्ये तयार करण्यास आणि व्यवस्थापित करण्यास सक्षम व्हा.

खुणा तयार करा आणि आपला वर्कफ्लो सानुकूलित करा

उत्पादकता वाढवते! टोडो अॅप वापरुन आपण पुनरावृत्ती प्रक्रियेचे प्रमाणिकरण करण्यासाठी सानुकूलित वर्कफ्लो तयार करू शकता. आता प्रयत्न करा आणि आपले टोडोस आणि डोनेस म्हणून आपली प्रगती नियंत्रित करणे सुरू करा.

संसाधने:

  1. प्रत्येक तिकिटासाठी कार्ये तयार करा
  2. वितरण करण्यायोग्य पाठपुरावा करण्यासाठी प्रगती बार
  3. उत्पादकता वाढविण्यासाठी प्रमाणित वर्कफ्लो तयार करा.
  4. आपल्या दैनंदिन नित्यक्रमात ठेवण्यासाठी आपली कार्य यादी व्यवस्थापित करा.
  1. अ‍ॅप वैशिष्ट्यांवर संपूर्ण प्रवेश मिळविण्यासाठी टोडो आणि झेंडेस्क सनशाईन दोन्ही स्टॅक करा
  2. कार्ये स्वयंचलितता तयार करून किंवा संपादन करून उत्पादकता सुधारित करा आणि आपले वैयक्तिकृत प्रीसेट जतन करा.
Thanks! You've already liked this