ভিউগুলিতে ডেটা প্রদর্শনের জন্য মডেলভিউ আর্কিটেকচার কিউটি এস এমভিসি-জাতীয় ইন্টারফেস
চলমান অ্যাপটি নীচে দেখানো হয়েছে.
টোডো 4+
বেশ কয়েক বছর ধরে আমি আমার আইপ্যাড, আমার আইফোন এবং আমার ম্যাকবুকপ্রোতে এই অ্যাপ্লিকেশনটি ব্যবহার করেছি. যদি এটি আইওএস -তে পুরোপুরি কাজ করে চলেছে তবে মনে হয় এটি ম্যাকোসের বিবর্তন পুরোপুরি অনুসরণ করেনি.
এটি ইনস্টল করতে কোনও সমস্যা নেই. তবে আর ম্যাকোসে টোডলেডোর সাথে সিঙ্ক্রোনাইজ করা আর সম্ভব নয়, যদিও এটি আইওএস -তে সম্ভব হতে থাকে: একই পরিচয়দাতাগুলি স্বীকৃত নয়.
সুতরাং এটি আমার পক্ষে অপ্রয়োজনীয় হয়ে ওঠে … এবং অ্যাপিগোর সহায়তা আমার অনুরোধের উত্তর দেওয়ার জন্য তাড়াহুড়োয় বলে মনে হয় না. এটি সর্বদা অপ্রীতিকর যে গ্রাহকের ধারণাটি প্রতিদিন তার মান আরও কিছুটা হারায়.
পিসা d
এই আপডেটের পর থেকে আমি আমার সমস্ত তালিকা 12 টির সংখ্যায় হারিয়েছি এবং যার সাথে আমি প্রতিদিন পেশাদার পদ্ধতিতে কাজ করি. আমি স্থায়ীভাবে প্রায় 200 টি দাগ পরিচালনা করি, এই আপডেটটি অগ্নিপরীক্ষার মাসের মাসগুলিতে রেখেছিল ! তালিকায় সংগঠিত সমস্ত কাজগুলি তাদের একক গ্লোবাল তালিকায় গোষ্ঠীভুক্ত করেছে. এটি অবশ্যই এই বাগ নয় যা আমাকে এই সফ্টওয়্যারটির পেশাদার বলে অন্যথায় দুর্দান্ত বলে সংস্করণে যেতে বাধ্য করবে. আমি কখনই বন্দী হব না. এটি কেবল আমার কাছে এই সন্ধ্যায় ইমেলের মাধ্যমে যোগাযোগ করা সহায়তার প্রতিক্রিয়াটির জন্য অপেক্ষা করা বা তারপরে এই দুর্দান্ত সফ্টওয়্যারটির পুরানো সংস্করণটি সন্ধান করা এখনও আমার পক্ষে রয়ে গেছে. আমি সত্যিই আশা করি যে এটি নতুন সংস্করণটির একটি যুবক বিগ এবং পূর্ববর্তী সংস্করণটির সাথে ইতিমধ্যে অর্জিত কার্যকারিতা সন্ধানের জন্য অর্থ প্রদানের প্রো সংস্করণে স্থানান্তরিত করার জন্য কোনও কৌশল নয়. তথ্যের জন্য আমার সিঙ্কটি ড্রপবক্স দিয়ে সম্পন্ন হয়েছে
সুরলপয়েন্ট, 12/13/2011
সিনক্রো এখন নিকেল
আমি সিঙ্ক্রোনাইজেশনের আগে ধরেছিলাম যা ধীর ছিল, খারাপভাবে হাঁটা, ইত্যাদি।. তবে এখন আইক্লাউডের সাথে এটি আমার পুরোপুরি উপযুক্ত.
কিছু সম্ভাব্য উন্নতি: আরও প্রদর্শন সেটিংস.
– ব্যবহারকারী যা ব্যবহার করে তা কেবল প্রদর্শন করতে. উদাহরণস্বরূপ আমি প্রসঙ্গ বা লেবেল ব্যবহার করি না (কোনও ক্ষেত্রে এখনও নেই) এবং আমি আর এই বিকল্পগুলি প্রদর্শন করতে চাই না যা আমার টোডো “দূষিত”. আমি আমার প্রতিদিনের নোটগুলির জন্য কেবল “তারিখ / অগ্রাধিকার / তালিকা / তালিকা” থাকতে চাই এবং আমি খুব কমই ব্যবহার করি এমন বিকল্পগুলির জন্য ডান ক্লিক করতে চাই
– এবং বিপরীতভাবে আমি তারিখ, অগ্রাধিকার, তালিকাটি বেছে নিতে একটি ড্রপ -ডাউন মেনু থেকে একটি সাধারণ পিএলএসইউ ডিসপ্লে চাই … আমার যদি কেবল তিনটি তালিকা থাকে তবে তিনটি বোতাম প্রদর্শিত হবে এবং আমি আমার তালিকাটি চয়ন করতে পারি ড্রপ -ডাউন মেনুতে ক্লিক করার পরিবর্তে এক ক্লিকের সাহায্যে নামটি সন্ধান করুন এবং এতে ক্লিক করুন. (অগ্রাধিকারের জন্য ডিট্টো, বিশেষত যে আমরা টোডো তালিকার খুব ভিজ্যুয়াল অঙ্কন থেকে খুব প্রাকৃতিক নয় এমন বিকল্পগুলির নামের পছন্দে যাই.
এগুলি এরগনোমিক্সের বিশদ. আমি সরলতা এবং টোডের দক্ষতা পছন্দ করি, তাই আমি চাই যে এটি আরও সহজ হতে আরও কনফিগারযোগ্য হতে পারে.
গোপনীয়তা অ্যাপ্লিকেশন
বিকাশকারী, অ্যাপিগো তার ব্যক্তিগত অনুশীলন এবং অ্যাপলকে ডেটা পরিচালনা সম্পর্কে বিশদ সরবরাহ করেনি. আরও তথ্যের জন্য, বিকাশের গোপনীয়তা নীতি দেখুন.
মডেলভিউ আর্কিটেকচার
ভিউগুলিতে ডেটা প্রদর্শনের জন্য কিউটির এমভিসি-জাতীয় ইন্টারফেস
আপনি পিওয়াইকিউটি 5 দিয়ে আরও জটিল অ্যাপ্লিকেশনগুলি তৈরি করতে শুরু করার সাথে সাথে আপনি সম্ভবত আপনার ডেটার সাথে সিঙ্কে উইজেটগুলি রেখে এসেছেন. উইজেটগুলিতে সঞ্চিত ডেটা (ই.ছ. একটি সাধারণ কিউলিস্টউইজেট) পাইথন থেকে ম্যানিপুলেট করার জন্য সহজেই উপলব্ধ নয় – পরিবর্তনগুলি আপনাকে একটি আইটেম পেতে, ডেটা পেতে এবং তারপরে এটি আবার সেট করতে হবে. এর ডিফল্ট সমাধান হ’ল পাইথনে একটি বাহ্যিক ডেটা উপস্থাপনা রাখা এবং তারপরে ডেটা এবং উইজেট উভয়কেই আইথ ডুপ্লিকেট আপডেটগুলি বা ডেটা থেকে কেবল উইহোল উইজেটটি পুনরায় লিখুন. এটি দ্রুত কুৎসিত হতে পারে এবং কেবলমাত্র ডেটা ফিড করার জন্য প্রচুর বয়লারপ্লেট ফলাফল করে.
ধন্যবাদ কিউটির এটির জন্য একটি সমাধান রয়েছে – মডেলভিউগুলি. মডেলভিউগুলি স্ট্যান্ডার্ড ডিসপ্লে উইজেটগুলির একটি শক্তিশালী বিকল্প, যা ডেটা উত্সগুলির সাথে যোগাযোগের জন্য নিয়মিত মডেল ইন্টারফেস ব্যবহার করে – সাধারণ ডেটা স্ট্রাকচার থেকে বাহ্যিক ডাটাবেসগুলিতে।. এটি আপনার ডেটা বিচ্ছিন্ন করে, এটি আপনার পছন্দ মতো যে কোনও কাঠামোতে রাখার অনুমতি দেয়, যখন ভিউ উপস্থাপনা এবং আপডেটের যত্ন নেয়.
এই টিউটোরিয়ালটি কিউটি -র মডেলভিউ আর্কিটেকচারের মূল দিকগুলি পরিচয় করিয়ে দেয় এবং এটি পিওয়াইকিউটি 5 এ সাধারণ ডেস্কটপ টোডো অ্যাপ্লিকেশন তৈরি করতে ব্যবহার করে.
মডেল ভিউ কন্ট্রোলার
মডেল – দেখুন – নিয়ামক (এমভিসি) হ’ল উন্নয়ন ব্যবহারকারী ইন্টারফেসের জন্য একটি স্থাপত্য প্যাটার্ন ব্যবহার যা একটি অ্যাপ্লিকেশনকে তিনটি আন্তঃসংযুক্ত অংশে বিভক্ত করে. এটি কীভাবে তথ্য উপস্থাপিত হয় এবং ব্যবহারকারীর কাছ থেকে গ্রহণ করা হয় তা থেকে ডেটার অভ্যন্তরীণ প্রতিনিধিত্বকে পৃথক করে.
এমভিসি ডিজাইন প্যাটেন তিনটি প্রধান উপাদানকে উত্সাহিত করে –
- মডেল অ্যাপ্লিকেশনটির সাথে কাজ করছে এমন ডেটা কাঠামো ধারণ করে.
- দেখুন ব্যবহারকারীকে দেখানো হিসাবে তথ্যের কোনও উপস্থাপনা, যেখানে গ্রাফিকাল বা টেবিল. একই ডেটা মডেলের একাধিক দর্শন অনুমোদিত.
- নিয়ন্ত্রণ ব্যবহারকারীর কাছ থেকে ইনপুট গ্রহণ করে, এটিকে মডেল বা ভিউয়ের জন্য কমান্ডে রূপান্তরিত করে.
এটি কিউটি অবতরণ করে ভিউ এবং কন্ট্রোলারের মধ্যে পার্থক্যটি কিছুটা নকল হয়ে যায়. কিউটি ব্যবহারকারীর (ওএসের মাধ্যমে) ইনপুট ইভেন্টগুলি গ্রহণ করে এবং এগুলি হ্যান্ডেল করার জন্য উইজেটগুলিতে (নিয়ামক) প্রতিনিধিত্ব করে. যাইহোক, উইজেটগুলি বর্তমান অবস্থার উপস্থাপনাটি ব্যবহারকারীর কাছেও পরিচালনা করে, এগুলি ভিউতে রেখে দেয়. লাইনটি কোথায় আঁকতে হবে তা নিয়ে বিরক্ত হওয়ার পরিবর্তে, কিউটি-এস-স্পিকটিতে ভিউ এবং কন্ট্রোলার হ’ল সরলতার জন্য একটি মডেল/ভিউকন্ট্রোলার আর্কিটেকচার-কল্ড “মডেল ভিউ” টোগড টোগডকে একীভূত করা হয়েছে.
গুরুত্বপূর্ণভাবে, মধ্যে পার্থক্য ডেটা এবং কিভাবে এটি উপস্থাপন করা হয় সংরক্ষণ করা হয়.
মডেল ভিউ
মডেলটি ডেটা স্টোর এবং ভিউকন্ট্রোলারের মধ্যে ইন্টারফেস হিসাবে কাজ করে. মডেলটি ডেটা ধারণ করে (বা এটির একটি রেফারেন্স) এবং একটি মানক এপিআইয়ের মাধ্যমে এই ডেটা উপস্থাপন করে যা ভিউগুলি ব্যবহার করে ব্যবহারকারীর কাছে গ্রাস করে এবং উপস্থাপন করে. একাধিক ভিউ একই তথ্য ভাগ করে নিতে পারে, এটি সম্পূর্ণ ভিন্ন উপায়ে উপস্থাপন করে.
আপনি আপনার মডেলের জন্য যে কোনও “ডেটা স্টোর” ব্যবহার করতে পারেন, উদাহরণস্বরূপ একটি স্ট্যান্ডার্ড পাইথন তালিকা বা অভিধান, বা একটি ডাটাবেস (ই এর মাধ্যমে.ছ. এসকিউএলএলচেমি) – এটি আপনার কাছে অধিকারী.
দুটি অংশ মূলত এর জন্য দায়বদ্ধ –
- চা মডেল ডেটা, বা এটির একটি রেফারেন্স সঞ্চয় করে এবং স্বতন্ত্র বা রেকর্ডের রেঞ্জগুলি এবং সম্পর্কিত মেটাডেটা বা প্রদান করে প্রদর্শন নির্দেশাবলী.
- চা দেখুন মডেল থেকে ডেটা অনুরোধ করে এবং উইজেটে যা ফিরে আসে তা প্রদর্শন করে.
ডকুমেন্টেশনে কিউটি আর্কিটেকচারের গভীরতার আলোচনা রয়েছে.
পাইথন জিইউআই অ্যাপ্লিকেশনগুলি পাইইনস্টেলারের সাথে সম্পূর্ণ গাইড.

[[ছাড়.ছাড়_পিসি]]] পরের জন্য% বন্ধ [ছাড়.সময়কাল]] [ছাড়.বিবরণ]] কোড সহ [ছাড়.কুপন কোড]]
ক্রয় শক্তি সমতা
[[দেশ]] এর বিকাশকারীরা [[ছাড় ছাড়).ছাড়_পিসি]] কোড সহ সমস্ত বই এবং কোর্স বন্ধ [ছাড়.কুপন কোড]]
একটি সাধারণ মডেল ভিউ – একটি টোডো তালিকা
অনুশীলনে মডেলভিউগুলি কীভাবে ব্যবহার করবেন তা প্রদর্শনের জন্য, আমরা একটি ডেস্কটপ টোডো তালিকার একটি খুব সাধারণ বাস্তবায়ন একসাথে রাখব. এটি আইটেমগুলির তালিকা, নতুন আইটেমগুলিতে প্রবেশের জন্য একটি কিউলাইনডিট এবং সম্পন্ন হিসাবে আইটেমগুলি যুক্ত, মুছতে বা চিহ্নিত করার জন্য বোতামগুলির একটি সেটের জন্য একটি কিউলিস্টভিউ সমন্বিত থাকবে.
ইউআই
সাধারণ ইউআই ছিল কুরুচিপূর্ণ আউটিং কিউটি স্রষ্টা এবং মাইনওয়াইন্ডো হিসাবে সংরক্ষণ করা.ইউআই . চা .ইউআই ফাইল এবং অন্যান্য সমস্ত অংশ নীচে ডাউনলোড করা যেতে পারে.

কিউটি স্রষ্টায় একটি সাধারণ টোডো অ্যাপ ডিজাইন করা
চলমান অ্যাপটি নীচে দেখানো হয়েছে.

চলমান টোডো জিইউআই (এখনও কিছুই কার্যকর হয় না)
ইন্টারফেসে উপলভ্য উইজেটগুলি আমরা নীচের সারণীতে প্রদর্শিত আইডিগুলি দিয়েছি.
| আপত্তি | দয়ালু | বর্ণনা |
|---|---|---|
| টোডভিউ | Qlistview | বর্তমান টোডসের তালিকা |
| টোডোডিট | Qlineedit | একটি নতুন টোডো আইটেম তৈরির জন্য পাঠ্য ইনপুট |
| অ্যাডবটন | কিপশবটন | টডস তালিকায় এটি যুক্ত করে নতুন টোডো তৈরি করুন |
| ডিলিটবটন | কিপশবটন | টডস তালিকা থেকে এটি সরিয়ে বর্তমান নির্বাচিত টোডো মুছুন |
| সম্পূর্ণ বুটন | কিপশবটন | সম্পন্ন হিসাবে বর্তমান নির্বাচিত টোডো চিহ্নিত করুন |
আমরা এই শনাক্তকারীগুলি পরে অ্যাপ্লিকেশন যুক্তিটি হুক করতে ব্যবহার করব.
মডেলটি
আমরা বাস্তবায়ন থেকে সাবক্লাসিং করে আমাদের কাস্টম মডেলটি সংজ্ঞায়িত করি, আমাদের মডেলটিতে অনন্য অংশগুলিতে মনোনিবেশ করার অনুমতি দেয়. কিউটি তালিকা, গাছ এবং টেবিলগুলি সহ বিভিন্ন বিভিন্ন মডেল ঘাঁটি সরবরাহ করে (স্প্রেডশিটগুলির জন্য আদর্শ).
এই উদাহরণের জন্য আমরা ফলাফলটি একটি কিউলিস্টভিউতে প্রদর্শন করছি . এর জন্য ম্যাচিং বেস মডেলটি হ’ল ক্যাবস্ট্র্যাক্টলিস্টমোডেল . আমাদের মডেলের জন্য রূপরেখা সংজ্ঞাটি নীচে দেখানো হয়েছে.
ক্লাস টোমডোডেল (কিউটিকোর).Qabstractlistmodel): Def __init __ (স্ব, *আরগস, টোডস = কিছুই নয়, ** কোয়ার্গস): সুপার (টোমডোডেল, স্ব).__init __ (*আরগস, ** কোয়ার্গস) স্ব.টডস = টডস বা [] ডিফ ডেটা (স্ব, সূচক, ভূমিকা): যদি ভূমিকা == কিউটি.ডিসপ্লেরোল: # ডেটা কাঠামোর জন্য নীচে দেখুন. স্থিতি, পাঠ্য = স্ব.টডস [সূচক.সারি ()] # কেবল টোডো পাঠ্যটি ফিরিয়ে দিন. রিটার্ন টেক্সট ডিফ রোকাউন্ট (স্ব, সূচক): রিটার্ন লেন (স্ব).টডস) চা .টডস ভেরিয়েবল হ’ল আমাদের ডেটা স্টোর এবং দুটি পদ্ধতি রোকাউন্ট () এবং ডেটা () হ’ল স্ট্যান্ডার্ড মডেল পদ্ধতি যা আমাদের অবশ্যই একটি তালিকার মডেলের জন্য অবশ্যই. আমরা নীচে এগুলি দিয়ে যাব.
.টডস তালিকা
আমাদের মডেলের জন্য ডেটা স্টোর .টডস, একটি সাধারণ অজগর তালিকা যেখানে আমরা ফর্ম্যাটে মানগুলির একটি টিপল সংরক্ষণ করব [(বুল, এসআরটি), (বুল, এসআরটি), (বুল, এসটিআর)] যেখানে বুলটি রয়েছে সুতরাং প্রদত্ত প্রবেশের অবস্থা, এবং এসআরটি হ’ল টোডের পাঠ্য.
আমরা আত্মার সূচনা করি.টোডোস কীওয়ার্ড আর্গুমেন্টের মাধ্যমে কোনও তালিকা পাস না হলে স্টার্টআপে একটি খালি তালিকায় টোডো.
স্ব.টোডোস = টোডোস বা [] স্ব সেট করবে.টডস সরবরাহ করা টোডোস মান যদি হয় ট্রুটি (i.ই. খালি তালিকা ব্যতীত অন্য কিছু, বুলিয়ান মিথ্যা বা কোনও ডিফল্ট মান নেই), অন্যথায় এটি খালি তালিকায় সেট করা হবে [] .
এই মডেলটির একটি ইনসেন্স তৈরি করতে আমরা সহজ করতে পারি –
মডেল = টোমডোডেল () # একটি খালি টোডো তালিকা তৈরি করুন বা একটি বিদ্যমান তালিকায় পাস করতে –
টডস = [(মিথ্যা, 'একটি আইটেম'), (মিথ্যা, 'অন্য আইটেম')] মডেল = টোমডোডেল (টডস) .সারি গণনা ()
চা .রোকাউন্ট () পদ্ধতিটি বর্তমান ডেটাতে সারিগুলির সংখ্যা পেতে ভিউ দ্বারা কল্যাড হয়. এটি এখন সর্বাধিক সূচকটি দেখার জন্য এটি ডেটা স্টোরটি পুনরায় করতে পারে (সারি গণনা -১). বিক্রয় আমরা পাইথন তালিকাটি আমাদের ডেটা স্টোর হিসাবে ব্যবহার করছি, এর জন্য রিটার্ন মানটি কেবল তালিকার লেন ().
.ডেটা ()
এটি আপনার মডেলের মূল বিষয়, যা ভিউ থেকে ডেটাগুলির জন্য অনুরোধগুলি পরিচালনা করে এবং উপযুক্ত ফলাফলটি ফিরিয়ে দেয়. এটি দুটি পরামিতি সূচক এবং ভূমিকা গ্রহণ করে.
সূচক হ’ল ডেটাটির অবস্থান/স্থানাঙ্ক যা ভিউটি অনুরোধ করছে, দুটি পদ্ধতিতে অ্যাক্সেসযোগ্য .সারি () এবং .কলাম () যা প্রতিটি মাত্রায় অবস্থান দেয়.
আমাদের কিউলিস্টভিউয়ের জন্য কলামটি সর্বদা 0 থাকে এবং উপেক্ষা করা যেতে পারে তবে আপনাকে স্প্রেডশিট ভিউতে 2 ডি ডেটার জন্য এটি ব্যবহার করতে হবে.
ভূমিকা একটি পতাকা যা নির্দেশ করে দয়ালু ডেটা ভিউ অনুরোধ করছে. এই কারণ .ডেটা () পদ্ধতির আসলে মূল ডেটার চেয়ে বেশি দায়িত্ব রয়েছে. এটি স্টাইলের তথ্য, সরঞ্জামদণ্ড, স্থিতি বার ইত্যাদির জন্য অনুরোধগুলিও পরিচালনা করে. – বেসিকভাবে এমন কিছু যা ডেটা নিজেই অবহিত করা যেতে পারে.
কিউটির নামকরণ.ডিসপ্লেরোলটি কিছুটা অদ্ভুত, তবে এটি ইঙ্গিত করে যে এটি দেখুন আমাদের জিজ্ঞাসা করছে “দয়া করে আমাকে প্রদর্শনের জন্য ডেটা দিন”. অন্য সব ভূমিকা যা ডেটা স্টাইলিং অনুরোধগুলির জন্য বা “সম্পাদনা-প্রস্তুত” ফর্ম্যাটে ডেটা অনুরোধ করার জন্য ডেটা গ্রহণ করতে পারে.
| ভূমিকা | মান | বর্ণনা |
|---|---|---|
| কিউটি.প্রদর্শন | 0 | পাঠ্য আকারে রেন্ডার করা মূল ডেটা. (কিউস্ট্রিং) |
| কিউটি.সজ্জা রোল | 1 | আইকন আকারে একটি সজ্জা হিসাবে রেন্ডার করা হবে ডেটা. (কিউকলোর, কিকন বা কিউপিআইএক্সএমএপি) |
| কিউটি.সম্পাদকীয় | 2 | একটি সম্পাদক সম্পাদনা করার জন্য একটি আনুষ্ঠানিক অনুসরণে ডেটা. (কিউস্ট্রিং) |
| কিউটি.টুলটিপ্রোল | 3 | আইটেমের সরঞ্জামটিপে প্রদর্শিত ডেটা. (কিউস্ট্রিং) |
| কিউটি.স্ট্যাটাস্টিপ্রোল | 4 | স্ট্যাটাস বারে প্রদর্শিত ডেটা. (কিউস্ট্রিং) |
| কিউটি.হোয়াটথিস্রোল | 5 | আইটেমটির জন্য ডেটা প্রদর্শিত “এটি কী?”ফ্যাশন. (কিউস্ট্রিং) |
| কিউটি.Sizehintrole | 13 | ভিউগুলিতে সরবরাহ করা হবে এমন আইটেমটির আকারের ইঙ্গিত. (কিউজাইজ) |
উপলব্ধ একটি সম্পূর্ণ তালিকার জন্য ভূমিকা যে আপনি কিউটি আইটিএমডেটারোল ডকুমেন্টেশন দেখতে পাবেন. আমাদের টোডো তালিকাটি কেবল কিউটি ব্যবহার করবে.ডিসপ্লেরোল এবং কিউটি.সজ্জা রোল .
বেসিক বাস্তবায়ন
নীচে ইউআই লোড করতে এবং এটি প্রদর্শনের জন্য প্রয়োজনীয় বেসিক স্টাব অ্যাপ্লিকেশনটি রয়েছে. আমরা এই বেসে আমাদের মডেল কোড এবং অ্যাপ্লিকেশন যুক্তি যুক্ত করব.
পিওয়াইকিউটি 5 থেকে আমদানি সিওএস, কিউটিগুই, কিউটিউইজেটস, পিওয়াইকিউটি 5 থেকে ইউআইসি.Qtcore আমদানি qt_creator_file = "মেইনওয়াইন্ডো.ui "ui_mainwindow, qtbaseclass = uic.লোডুডুয়াইপ (কিউটি_ক্রিটর_ফাইলে) ক্লাস টোমডোডেল (কিউটিসিওর.Qabstractlistmodel): Def __init __ (স্ব, *আরগস, টোডস = কিছুই নয়, ** কোয়ার্গস): সুপার (টোমডোডেল, স্ব).__init __ (*আরগস, ** কোয়ার্গস) স্ব.টডস = টডস বা [] ডিফ ডেটা (স্ব, সূচক, ভূমিকা): যদি ভূমিকা == কিউটি.ডিসপ্লেরোল: স্থিতি, পাঠ্য = স্ব.টডস [সূচক.সারি ()] রিটার্ন টেক্সট ডিফ রোকাউন্ট (স্ব, সূচক): রিটার্ন লেন (স্ব).টডস) ক্লাস মেইনওয়াইন্ডো (কিউটিউইজেটস.Qmainwindow, ui_mainwindow): Def __init __ (স্ব): কিউটিউইজেটস.কিউমাইনউইন্ডো.__init __ (স্ব) ui_mainwindow.__init __ (স্ব) স্ব.Setupui (স্ব) স্ব.মডেল = টোমডোডেল () স্ব.টোডভিউ.সেটমোডেল (স্ব.মডেল) অ্যাপ্লিকেশন = কিউটিউইজেটস.Qapplication (sys.আরগভি) উইন্ডো = মেইনওয়াইন্ডো () উইন্ডো.প্রদর্শন () অ্যাপ.এক্সিকিউটি_ () আমরা আমাদের টোমডোডেলকে আগের মতো সংজ্ঞায়িত করি এবং মেইনউইন্ডো অবজেক্টটি আরম্ভ করি. মেইনওয়াইন্ডোর জন্য __init__ এ আমরা আমাদের টোডো মডেলের একটি উদাহরণ তৈরি করি এবং এই মডেলটি টোডো_ভিউতে সেট করি . টোডো হিসাবে এই ফাইলটি সংরক্ষণ করুন.পিওয়াই এবং এটি দিয়ে চালান –
পাইথন 3 টোডো.গতি যদিও এখনও দেখার মতো খুব বেশি কিছু নেই, তবে কিউলিস্টভিউ এবং আমাদের মডেলটি আসলে কাজ করছে – আপনি যদি কিছু ডিফল্ট ডেটা যুক্ত করেন তবে আপনি এটি তালিকায় উপস্থিত হতে দেখবেন.
স্ব.মডেল = টোমডোডেল (টডস = [(মিথ্যা, 'আমার প্রথম টোডো'))]))))) 
Qlistview হার্ড-কোডেড টোডো আইটেম দেখাচ্ছে
আপনি এইভাবে আইটেমগুলি ম্যানুয়ালি যুক্ত করতে পারেন এবং তারা কিউলিস্টভিউতে ক্রমানুসারে প্রদর্শিত হবে . এরপরে আমরা অ্যাপ্লিকেশনটির মধ্যে থেকে আইটিএমএস যুক্ত করা সম্ভব করব.
প্রথমে অ্যাড নামের মেইনউইন্ডোতে একটি নতুন পদ্ধতি তৈরি করুন . এটি আমাদের কলব্যাক যা নতুন টোডো হিসাবে ইনপুট থেকে বর্তমান পাঠ্য যুক্ত করার যত্ন নেবে. এই পদ্ধতিটি অ্যাডবাটনের সাথে সংযুক্ত করুন.__Init__ ব্লকের শেষে চাপানো সিগন্যাল.
ক্লাস মেইনউইন্ডো (কিউটিউইজেটস.Qmainwindow, ui_mainwindow): Def __init __ (স্ব): কিউটিউইজেটস.কিউমাইনউইন্ডো.__init __ (স্ব) ui_mainwindow.__init __ (স্ব) স্ব.Setupui (স্ব) স্ব.মডেল = টোমডোডেল () স্ব.টোডভিউ.সেটমোডেল (স্ব.মডেল) # বোতামটি সংযুক্ত করুন. স্ব.অ্যাডবটন.টিপুন.সংযুক্ত (স্ব.যোগ করুন) ডিএফ অ্যাড (স্ব): "" আমাদের টোডো তালিকায় একটি আইটেম যুক্ত করুন, কিউলাইনডিট থেকে পাঠ্যটি পেয়ে .টোডোইডিট এবং সেখানে এটি সাফ করা. "" "পাঠ্য = স্ব.টোডোডিট.পাঠ্য () যদি পাঠ্য: # খালি স্ট্রিং যুক্ত করবেন না. # মডেলের মাধ্যমে তালিকাটি অ্যাক্সেস করুন. স্ব.মডেল.টডস.সংযোজন ((মিথ্যা, পাঠ্য)) # ট্রিগার রিফ্রেশ. স্ব.মডেল.লেআউট চেঞ্জড.নির্গত () # ইনপুট স্ব খালি.টোডোডিট.সেটটেক্সট ("") অ্যাড ব্লকটিতে লাইন স্ব -স্বত.মডেল.লেআউট চেঞ্জড.নির্গত () . এখানে আমরা একটি মডেল সংকেত নির্গত করছি .ভিউটি জানাতে লেআউট চেঞ্জড আকৃতি ডেটা পরিবর্তন করা হয়েছে. এটি দৃশ্যের সত্তার একটি রিফ্রেশ ট্রিগার করে. আপনি যদি এই লাইনটি বাদ দেন তবে টোডো এখনও যুক্ত করা হবে তবে কিউলিস্টভিউ আপডেট হবে না.
যদি কেবল ডেটা পরিবর্তন করা হয় তবে সারি/কলামগুলির সংখ্যা প্রভাবিত হয় না আপনি এটি ব্যবহার করতে পারেন .পরিবর্তে datachanged () সংকেত. এটি পুরো দৃশ্যটি পুনরায় চিত্রিত করতে এড়াতে শীর্ষ-বাম এবং নীচে-ডান ভাড়া ব্যবহার করে ডেটাতে একটি পরিবর্তিত অঞ্চলকেও সংজ্ঞায়িত করে.
অন্যান্য ক্রিয়াগুলি হুক আপ
আমরা এখন বাকী বোতামের সংকেতগুলি সংযুক্ত করতে পারি এবং পারফরম্যান্সের জন্য সহায়তা যুক্ত করতে পারি মুছে ফেলা এবং সম্পূর্ণ অপারেশন. আমরা আগের মতো __init__ ব্লকে বোতামের সংকেতগুলি যুক্ত করি.
স্ব.অ্যাডবটন.টিপুন.সংযুক্ত (স্ব.যোগ) স্ব.ডিলিটবটন.টিপুন.সংযুক্ত (স্ব.মুছুন) স্ব.সম্পূর্ণ বুটন.টিপুন.সংযুক্ত (স্ব.সম্পূর্ণ) তারপরে নিম্নলিখিত হিসাবে একটি নতুন মুছুন পদ্ধতি সংজ্ঞায়িত করুন –
ডিফ মুছুন (স্ব): সূচকগুলি = স্ব.টোডভিউ.নির্বাচিত ডাইনডেক্সেস () যদি সূচকগুলি: # সূচকগুলি একক-সিলেক্টে একটি একক আইটেমের একটি তালিকা. সূচক = সূচকগুলি [0] # আইটেমটি সরান এবং রিফ্রেশ করুন. ডেল স্ব.মডেল.টডস [সূচক.সারি ()] স্ব.মডেল.লেআউট চেঞ্জড.নির্গত () # নির্বাচনটি সাফ করুন (কারণ এটি কোনও দীর্ঘ বৈধ নয়). স্ব.টোডভিউ.ক্লার্লেকশন () আমরা স্ব ব্যবহার করি.টোডভিউ.সূচকগুলি পেতে নির্বাচিত ডাইনডেক্সেস (আসলে একটি একক আইটেমের একটি তালিকা, যেমন আমরা একক-নির্বাচন মোডে) এবং তারপরে .সারি () আমাদের মডেলটিতে আমাদের টডস তালিকার সূচক হিসাবে. আমরা পাইথনের ডেল অপারেটর ব্যবহার করে সূচকযুক্ত আইটেমটি মুছতে পারি এবং তারপরে একটি লেআউট চেঞ্জড সিগন্যাল ট্রিগার করি কারণ ডেটার আকারটি সংশোধন করা হয়েছে.
চূড়ান্তভাবে, আমরা সক্রিয় নির্বাচনটি পরিষ্কার করি যেহেতু এটি আইটেমটি এখন সীমা ছাড়িয়ে যেতে পারে (যদি আপনি শেষ আইটেমটি নির্বাচন করে থাকেন).
আপনি এই স্মার্টরটি তৈরি করার চেষ্টা করতে পারেন এবং পরিবর্তে তালিকার শেষ আইটেমটি নির্বাচন করতে পারেন
সম্পূর্ণ পদ্ধতিটি এর মতো পছন্দ করে –
ডিএফ সম্পূর্ণ (স্ব): সূচকগুলি = স্ব.টোডভিউ.সূচকগুলি নির্বাচন করুন.সারি () স্থিতি, পাঠ্য = স্ব.মডেল.টডস [সারি] স্ব.মডেল.টডস [সারি] = (সত্য, পাঠ্য) # .ডেটাচ্যাংড শীর্ষ-বাম এবং নীচে ডানদিকে নেয়, যা একক নির্বাচনের জন্য সমান #. স্ব.মডেল.ডেটাচ্যাংড.নির্গমন (সূচক, সূচক) # নির্বাচনটি সাফ করুন (এটি দীর্ঘ বৈধ নয়). স্ব.টোডভিউ.ক্লার্লেকশন () এটি মুছে ফেলার মতো একই সূচক ব্যবহার করে তবে এবার আমরা মডেলটি থেকে আইটেমটি আনতে পারি .টডস তালিকা এবং তারপরে সত্যের সাথে স্থিতি প্রতিস্থাপন করুন .
আমাদের এই তথ্যটি করতে হবে, কারণ আমাদের ডেটা পাইথন টিউপস হিসাবে সংরক্ষণ করা হয় যা পরিবর্তন করা যায় না.
মূল আলাদা এখানে বনাম. স্ট্যান্ডার্ড কিউটি উইজেটগুলি হ’ল আমরা সরাসরি আমাদের ডেটাতে পরিবর্তন করি, এবং সরলভাবে কিউটিকে অবহিত করা দরকার যা হাসুর্ড পরিবর্তন করে – উইজেট রাষ্ট্র আপডেট করা স্বয়ংক্রিয়ভাবে পরিচালনা করা হয়.
কিউটি ব্যবহার করে.সজ্জা রোল
আপনি যদি এখন অ্যাপ্লিকেশনটি চালাচ্ছেন তবে আপনার উভয় কাজ যুক্ত করা এবং মুছে ফেলা উচিত, তবে আইটেমগুলি সম্পূর্ণ করার সময় কাজ করছে, ভিউতে এটির কোনও ইঙ্গিত নেই. যখন কোনও আইটেম সম্পূর্ণ হয় তখন প্রদর্শন করার জন্য একটি সূচক সহ ভিউ সরবরাহ করতে আমাদের মডেল আপডেট করতে হবে. আপডেট হওয়া মডেলটি নীচে দেখানো হয়েছে.
টিক = কিউটিগুই.কিমেজ ('টিক).পিএনজি ') ক্লাস টোমডোডেল (কিউটিকোর).Qabstractlistmodel): Def __init __ (স্ব, *আরগস, টোডস = কিছুই নয়, ** কোয়ার্গস): সুপার (টোমডোডেল, স্ব).__init __ (*আরগস, ** কোয়ার্গস) স্ব.টডস = টডস বা [] ডিফ ডেটা (স্ব, সূচক, ভূমিকা): যদি ভূমিকা == কিউটি.ডিসপ্লেরোল: _, পাঠ্য = স্ব.টডস [সূচক.সারি ()] রিটার্ন পাঠ্য যদি ভূমিকা == কিউটি.সজ্জা রোল: স্থিতি, _ = স্ব.টডস [সূচক.সারি ()] যদি স্ট্যাটাস: রিটার্ন টিক ডিফ রোকাউন্ট (স্ব, সূচক): রিটার্ন লেন (স্ব).টডস) একটি টিক আইকন টিক ব্যবহার করছিল.সম্পূর্ণ আইটেমগুলি নির্দেশ করতে পিএনজি, যা আমরা টিক নামের একটি কিমেজ অবজেক্টে লোড করি . মডেলটিতে আমরা কিউটির জন্য একটি হ্যান্ডলার প্রয়োগ করেছি.সাজসজ্জা রোল যা সারিগুলির জন্য টিক আইকনটি ফিরিয়ে দেয় যার স্থিতি সত্য (সম্পূর্ণ জন্য).
আমি যে আইকনটি ব্যবহার করছি তা পি দ্বারা সেট করা ফিউগু থেকে নেওয়া হয়েছে.ইউসুক্কামিয়ামনে
আই আইকনের ইন্টোস্ট্যাড আপনি রঙে ফিরে আসতে পারেন, ই.ছ. কিউটিগুই.কিউকলোর (‘সবুজ’) যা শক্ত বর্গ হিসাবে আঁকা হবে.
অ্যাপটি চালানো আপনার এখন সম্পূর্ণ হিসাবে আইটেম চিহ্নিত করতে সক্ষম হওয়া উচিত.

টডস সম্পূর্ণ চিহ্নিত
একটি অবিচ্ছিন্ন ডেটা স্টোর
আমাদের টোডো অ্যাপটি সুন্দরভাবে কাজ করে তবে এটির একটি মারাত্মক ত্রুটি রয়েছে-আপনি যখন জেনের স্বল্পমেয়াদী অনুভূতিতে অবদান রাখতে পারেন তখন আপনার কিছু করার নেই এমন ভেবে আপনি আবেদনটি বন্ধ করার সাথে সাথে এটি আপনার টডসকে ভুলে যায়, দীর্ঘমেয়াদী এটি সম্ভবত একটি খারাপ ধারণা.
সমাধানটি হ’ল অবিচ্ছিন্ন ডেটা স্টোরের কিছু আউট বাস্তবায়ন করা. সবচেয়ে সহজ পদ্ধতির একটি সাধারণ ফাইল স্টোর, যেখানে আমরা স্টার্টআপে কোনও জেএসএন বা পিকল ফাইল থেকে আইটেমগুলি লোড করি এবং পরিবর্তনে ফিরে লিখি.
এটি করার জন্য আমরা আমাদের হাতে দুটি নতুন পদ্ধতি সংজ্ঞায়িত করি . একটি জেএসএন ফাইলের নাম ডেটা থেকে এই লোড ডেটা.JSON (যদি এটি বিদ্যমান থাকে তবে ত্রুটিটি যদি তা না করে তবে তা উপেক্ষা করে) নিজের কাছে.মডেল.টডস এবং বর্তমান স্ব লিখুন.মডেল.টডস যথাক্রমে একই ফাইলের বাইরে.
ডিএফ লোড (স্ব): চেষ্টা করুন: খোলা ('ডেটা সহ.json ',' r ') f: স্ব: স্ব.মডেল.টডস = জসন.লোড (চ) ব্যতিক্রম ব্যতিক্রম: পাস ডিএফ সেভ (স্ব): খোলা ('ডেটা সহ.json ',' ডাব্লু ') এফ: ডেটা = জসন.ডাম্প (স্ব.মডেল.টোডোস, চ) ডেটাতে পরিবর্তনগুলি বজায় রাখতে আমাদের যুক্ত করতে হবে .সংরক্ষণ করুন () হ্যান্ডলার যে কোনও পদ্ধতির শেষে যা ডেটা পরিবর্তন করে এবং .মডেলটি তৈরি করার পরে __init__ ব্লকের হ্যান্ডলার লোড ().
চূড়ান্ত কোডটি দেখতে এর মতো –
পিওয়াইকিউটি 5 থেকে পিওয়াইকিউটি 5 থেকে আমদানি করুন JSON আমদানি করুন JSON.Qtcore আমদানি qt_creator_file = "মেইনওয়াইন্ডো.ui "ui_mainwindow, qtbaseclass = uic.লোডুডিউসাইপ (qt_creator_file) টিক = কিউটিগুই.কিমেজ ('টিক).পিএনজি ') ক্লাস টোমডোডেল (কিউটিকোর).Qabstractlistmodel): Def __init __ (স্ব, *আরগস, টোডস = কিছুই নয়, ** কোয়ার্গস): সুপার (টোমডোডেল, স্ব).__init __ (*আরগস, ** কোয়ার্গস) স্ব.টডস = টডস বা [] ডিফ ডেটা (স্ব, সূচক, ভূমিকা): যদি ভূমিকা == কিউটি.ডিসপ্লেরোল: _, পাঠ্য = স্ব.টডস [সূচক.সারি ()] রিটার্ন পাঠ্য যদি ভূমিকা == কিউটি.সজ্জা রোল: স্থিতি, _ = স্ব.টডস [সূচক.সারি ()] যদি স্ট্যাটাস: রিটার্ন টিক ডিফ রোকাউন্ট (স্ব, সূচক): রিটার্ন লেন (স্ব).টডস) ক্লাস মেইনওয়াইন্ডো (কিউটিউইজেটস.Qmainwindow, ui_mainwindow): Def __init __ (স্ব): সুপার (মেনউইন্ডো, স্ব).__নিজেই.Setupui (স্ব) স্ব.মডেল = টোমডোডেল () স্ব.লোড () স্ব.টোডভিউ.সেটমোডেল (স্ব.মডেল) স্ব.অ্যাডবটন.টিপুন.সংযুক্ত (স্ব.যোগ) স্ব.ডিলিটবটন.টিপুন.সংযুক্ত (স্ব.মুছুন) স্ব.সম্পূর্ণ বুটন.টিপুন.সংযুক্ত (স্ব.সম্পূর্ণ) ডিফ অ্যাড (স্ব): "" "আমাদের টোডো তালিকায় একটি আইটেম যুক্ত করুন, কিউলাইনডিট থেকে পাঠ্যটি পেয়ে .টোডোইডিট এবং সেখানে এটি সাফ করা. "" "পাঠ্য = স্ব.টোডোডিট.পাঠ্য () যদি পাঠ্য: # খালি স্ট্রিং যুক্ত করবেন না. # মডেলের মাধ্যমে তালিকাটি অ্যাক্সেস করুন. স্ব.মডেল.টডস.সংযোজন ((মিথ্যা, পাঠ্য)) # ট্রিগার রিফ্রেশ. স্ব.মডেল.লেআউট চেঞ্জড.নির্গত () # ইনপুট স্ব খালি.টোডোডিট.সেটটেক্সট ("") স্ব.সংরক্ষণ করুন () ডিফ মুছুন (স্ব): সূচকগুলি = স্ব.টোডভিউ.নির্বাচিত ডাইনডেক্সেস () যদি সূচকগুলি: # সূচকগুলি একক-সিলেক্টে একটি একক আইটেমের একটি তালিকা. সূচক = সূচকগুলি [0] # আইটেমটি সরান এবং রিফ্রেশ করুন. ডেল স্ব.মডেল.টডস [সূচক.সারি ()] স্ব.মডেল.লেআউট চেঞ্জড.নির্গত () # নির্বাচনটি সাফ করুন (কারণ এটি কোনও দীর্ঘ বৈধ নয়). স্ব.টোডভিউ.ক্লার্লেকশন () স্ব.সংরক্ষণ করুন () ডিএফ সম্পূর্ণ (স্ব): সূচকগুলি = স্ব.টোডভিউ.সূচকগুলি নির্বাচন করুন.সারি () স্থিতি, পাঠ্য = স্ব.মডেল.টডস [সারি] স্ব.মডেল.টডস [সারি] = (সত্য, পাঠ্য) # .ডেটাচ্যাংড শীর্ষ-বাম এবং নীচে ডানদিকে নেয়, যা একক নির্বাচনের জন্য সমান #. স্ব.মডেল.ডেটাচ্যাংড.নির্গমন (সূচক, সূচক) # নির্বাচনটি সাফ করুন (এটি দীর্ঘ বৈধ নয়). স্ব.টোডভিউ.ক্লার্লেকশন () স্ব.সংরক্ষণ করুন () ডিএফ লোড (স্ব): চেষ্টা করুন: ওপেন সহ ('ডেটা).ডিবি ',' আর ') এফ হিসাবে: স্ব.মডেল.টডস = জসন.লোড (চ) ব্যতিক্রম ব্যতিক্রম: পাস ডিএফ সেভ (স্ব): খোলা ('ডেটা সহ.ডিবি ',' ডাব্লু ') এফ: ডেটা = জসন হিসাবে.ডাম্প (স্ব.মডেল.টডস, চ) অ্যাপ্লিকেশন = কিউটিউইজেটস.Qapplication (sys.আরগভি) উইন্ডো = মেইনওয়াইন্ডো () উইন্ডো.প্রদর্শন () অ্যাপ.এক্সিকিউটি_ () যদি আপনার অ্যাপ্লিকেশনটিতে থাকা ডেটাগুলিতে বড় বা আরও জটিল হওয়ার সম্ভাবনা থাকে তবে আপনি এটি সঞ্চয় করার জন্য একটি আসল ডাটাবেস ব্যবহার করতে পারেন. এই ক্ষেত্রে মডেলটি ইন্টারফেসটি ডাটাবেসে গুটিয়ে দেবে এবং ডেটা প্রদর্শনের জন্য সরাসরি এটি জিজ্ঞাসা করবে. একটি আসন্ন টিউটোরিয়ালে এটি কীভাবে করবেন তা কভার করুন.
একটি কিউলিস্টভিউয়ের আরেকটি আকর্ষণীয় উদাহরণের জন্য এই উদাহরণটি মিডিয়া প্লেয়ার অ্যাপ্লিকেশনটি দেখুন. এটি কিউটি বিল্ডিং কিউমিডিয়াপ্লেলিস্টকে ডেটাস্টোর হিসাবে ব্যবহার করে, সামগ্রীগুলি একটি কিউলিস্টভিউতে প্রদর্শিত হয় .
বিসিআর সম্পর্কে.সিএক্স:
বিসিআর.সিএক্স একটি ব্রাজিলিয়ান প্রযুক্তি স্টার্টআপ, উভয় ব্যবসায়িক আউটসোর্সিং প্রক্রিয়া (বিপিও) এবং ব্যবসায়িক পরিবেশ আউটসোর্সিং (বিইও) উভয় ক্ষেত্রেই বিশেষায়িত, মূলত চাহিদা জেনারেশন, গ্রাহকের অভিজ্ঞতা, যোগাযোগ, ব্যবহারকারী সমর্থন এবং সন্তুষ্টিতে মনোনিবেশ করা.
বর্ণনা:
টোডো অ্যাপটি কাজের দিনগুলিতে এজেন্টের নোটগুলি সংরক্ষণের জন্য দ্রুত, নিরাপদ এবং ব্যবহারকারী-বান্ধব উপায় হিসাবে বিকাশ করা হয়েছিল.
প্রতিটি পৃথক টিকিট বা গ্রাহকের উপর ভিত্তি করে আপনার নিজের কাজগুলি তৈরি এবং পরিচালনা করতে সক্ষম হন.
ট্রেইল তৈরি করুন এবং আপনার কর্মপ্রবাহটি কাস্টমাইজ করুন
উত্পাদনশীলতা বৃদ্ধি! টোডো অ্যাপ্লিকেশন ব্যবহার করে আপনি পুনরাবৃত্ত প্রক্রিয়াগুলি মানক করতে কাস্টমাইজড ওয়ার্কফ্লো তৈরি করতে পারেন. এখনই চেষ্টা করুন এবং আপনার টডস এবং ডোনস হিসাবে আপনার অগ্রগতি নিয়ন্ত্রণ করা শুরু করুন.
সংস্থান:
- প্রতিটি টিকিটের জন্য কাজ তৈরি করুন
- বিতরণ বার বিতরণযোগ্য
- উত্পাদনশীলতা বাড়ানোর জন্য মানক কর্মপ্রবাহ তৈরি করুন.
- আপনার প্রতিদিনের রুটিনের সাথে এটি চালিয়ে যাওয়ার জন্য আপনার টাস্ক তালিকাটি পরিচালনা করুন.
- অ্যাপ্লিকেশন বৈশিষ্ট্যগুলিতে সম্পূর্ণ অ্যাক্সেস পেতে টোডো এবং জেন্ডেস্ক সানশাইন উভয়ই স্ট্যাক করুন
- কার্যগুলি অটোমেশন তৈরি বা সম্পাদনা করে উত্পাদনশীলতা উন্নত করুন এবং আপনার ব্যক্তিগতকৃত প্রিসেটগুলি সংরক্ষণ করুন.



