سؤال

أحاول حاليا ترحيل تطبيق Legacy VBA / Microsoft Access إلى Python و Pyqt. لم يكن لدي أي مشاكل ترحيل أي من المنطق، وكان معظم النماذج مفاجئا أيضا. ومع ذلك، فقد وصلت إلى مشكلة في الجزء الأكثر أهمية من التطبيق - نموذج إدخال البيانات الرئيسي.

النموذج هو أساسا صف مربعات النص المقابلة للحقول في قاعدة البيانات. يدخل المستخدم ببساطة البيانات في الحقول، علامات تبويب إلى التالي وتكرار. عندما يتعلق الأمر بنهاية السجل / الصف، فهو علامات التبويب مرة أخرى، ويخلق النموذج صف فارغا جديدا له لبدء إدخال البيانات مرة أخرى. (في الواقع، يعرض صف "فارغا" أسفل السجل الجديد الحالي، والذي يمكن للمستخدم أن ينقر بالفعل لبدء سجلات جديدة أيضا.) كما يسمح للمستخدم بالتمرير لأعلى ولأسفل لرؤية جميع المجموعة الفرعية الحالية السجلات التي يعمل عليها.

هل هناك طريقة لتكرار هذه الوظيفة في PYQT؟ لم تتمكن من إيجاد طريقة للحصول على QT للقيام بذلك بسهولة. الوصول يعتني به تلقائيا؛ لا يوجد رمز خارج النموذج مطلوب. هل هذا سهل في PYQT (أو حتى قريب)، أو هل هذا شيء سيحتاج إلى برمجته من الصفر؟

هل كانت مفيدة؟

المحلول

يجب أن ننظر إلى QSQLTableModel، وكائنات QtableView. تقدم QSQLTABLEMODEL تجريدا لجدول علائقية يمكن استخدامها داخل فصول عرض QT. qtableview على سبيل المثال. يمكن تنفيذ الوظيفة التي تصفها بذل جهد معتدل فقط باستخدام هاتين الفئتين.

يدعم QSQLTableModel أيضا التحرير في حقول قاعدة البيانات.

أعتقد أن الوظائف الوحيدة التي سيتعين عليك تنفيذها يدويا هي "علامة التبويب" في نهاية الجدول لإنشاء صف جديد إذا كنت ترغب في الحفاظ على ذلك.

لا أعرف الكثير عن الوصول، ولكن استخدام برنامج تشغيل ODBC-SQL، يجب أن تكون قادرا على استخدام قاعدة بيانات الوصول الفعلي لتطويرك أو اختبارك هناك بعض المعلومات القديمة هنا, قد ترغب في التفكير في الانتقال إلى SQLite أو MySQL أو قاعدة بيانات SQL الفعلية الأخرى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top