প্রকল্প সম্পর্কে

dbwidgets হলো একটি Python লাইব্রেরি যা PySide6 অ্যাপ্লিকেশনে Delphi-শৈলীর ডেটা নিয়ন্ত্রণ আনে। এটি তিনটি মূল স্তর নিয়ে গঠিত: একটি স্কিমা এক্সট্রাক্টর (`db`, `DBSQLite`, `DBPostgres`, `DBMySQL`/`DBMariaDB`) যা টেবিল, কলাম, প্রাইমারি এবং ফরেন কী পড়ে; একটি ডেটাসেট স্তর (`DataSet`, `QueryDataSet`, `DataSource`, `Field`) যা কার্সর, সম্পাদনা, সন্নিবেশ, মুছে ফেলা এবং মাস্টার-ডিটেইল নেভিগেশন সরবরাহ করে; এবং একটি উইজেট স্তর (`DBText`, `DBEdit`, `DBGrid`, `DBNavigator`, `DBLookupComboBox`, `DBImage`, `DBCtrlGrid`, ইত্যাদি) যা অতিরিক্ত ওয়্যারিং ছাড়াই সরাসরি ডেটা উৎসের সাথে বাঁধে। লাইব্রেরিটি স্বয়ংক্রিয়ভাবে ফরেন কী থেকে মাস্টার-ডিটেইল সম্পর্ক উত্পন্ন করে, ক্যালকুলেটেড এবং লুকআপ ফিল্ড সমর্থন করে, এবং সন্নিবেশের জন্য খালি সারি, শুধুমাত্র-পঠনযোগ্য ক্যোয়ারি ডেটাসেট এবং লোড/সেভ অপারেশনসহ ব্লব হ্যান্ডলিংয়ের মতো সমৃদ্ধ সম্পাদনা বৈশিষ্ট্য অফার করে। Qt Designer-এর সাথে ইন্টিগ্রেশন একটি প্লাগইনের মাধ্যমে সরবরাহ করা হয় যা একটি `dbwidgets.json` প্রজেক্ট ফাইল লোড করতে পারে, ডিজাইন করার সময় ফর্মগুলিকে লাইভ ডেটা প্রদর্শন করতে দেয়। প্লাগইনটি একটি সংযোগ ডায়ালগ এবং সোর্স ম্যানেজারও সরবরাহ করে। রানটাইম বাঁধন `bind` এবং `ui_loader` ইউটিলিটির মাধ্যমে অথবা বেস উইজেট প্রমোট করার মাধ্যমে করা হয়। একটি মূল API (`dbwidgets.widgets`) পশ্চাৎমুখী সামঞ্জস্যের জন্য রাখা হয়েছে। প্রকল্পটিতে বিস্তৃত ডকুমেন্টেশন, উদাহরণ স্ক্রিপ্ট (মৌলিক ডেটাসেট, গ্রিড, মাস্টার-ডিটেইল, লুকআপ, ক্যোয়ারি এবং ডিজাইনার ফর্ম কভার করে) এবং একটি টেস্ট স্যুট রয়েছে যা একটি ইন-মেমরি SQLite ডেটাবেসে হেডলেস চলে। ডেমো ভিডিওগুলি স্কিমা এক্সট্রাকশন থেকে ডিজাইনার-নির্মিত ফর্ম (সম্পাদনাযোগ্য গ্রিড এবং নেভিগেটরসহ) পর্যন্ত সম্পূর্ণ ওয়ার্কফ্লো চিত্রিত করে।