هل من الممكن الوصول إلى خصائص مخصصة من مصمم QT بعد التحويل إلى بيثون؟

StackOverflow https://stackoverflow.com/questions/2321264

  •  22-09-2019
  •  | 
  •  

سؤال

أنا جديد على PYQT و QT Designer وأحاول إنشاء طريقة سهلة لربط QWidgets مع الجداول والأعمدة في قاعدة بيانات SQLite. كانت فكرتي هي وضع علامة على كل QWidget في المصمم مع خصائص مخصصة ، واحدة باسم الجدول وواحدة باسم العمود. في وقت لاحق ، أود استخدام المعلومات المقدمة من Designer لإنشاء صفي الخاص الذي ينشئ علاقة بين QWidets وقاعدة بيانات SQLite.

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

شكرًا،

إريك

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

المحلول

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

تحرير: لقد كنت أقوم ببعض القراءة وأستطيع أن أجد طريقة لإنجاز هذا تلقائيًا من أجلك. إذا كنت على ما يرام مع إضافة خصائص ديناميكية في وقت التشغيل بدلاً من وقت التصميم ، يمكنك تحقيق نفس النتيجة النهائية. هنا هو شرح لطريقة setProperty () في QOBject ، والتي يرث منها QWidget.

إذا لم ينجح ذلك من أجلك ، فيبدو أنك قد تكون أفضل حالًا مع نهج أقل عاما. بدلاً من استخدام QWidget عام ، قد تتمكن من استخدام فئة مخصصة مشتقة من QSQLTABLEMODEL لتتبع معلومات الاتصال الخاصة بك. هناك طريقة أخرى تتمثل في استخدام QTableView والقيام بالاستعلامات بنفسك لملء البيانات. هنا و هنا هي مقالات على قواعد البيانات في QT. قد تكون بعض الإلهام لتصميم جديد من أحدهم.

نصائح أخرى

إذا قمت بإضافة خاصية في مصمم يسمى "MyProperty" ، أحضرها بـ ...

mywidget.property("myproperty")

هذا يعمل بشكل جيد في PYQT 4.8.3 ، ربما لم ينجح في الإصدارات السابقة.

لم أحصل على حظ كبير في استخدام أداة المصمم - عادة ما ينتهي بي الأمر ببعض التصميمات الخشنة ، باستخدام pyuic ثم تحرير وإضافة أشياء أخرى باليد.

يبدو أنك تستطيع إنجاز مهمتك بسهولة عن طريق إنشاء فئة مخصصة خاصة بك ترث منها QWidget ولديه الخصائص الإضافية التي وصفتها. من خلال تجربتي في محاولة لاستخدام أجهزة واجهة مستخدم مخصصة في المصمم ، أعتقد أن الطريقة "الأسهل" هي مجرد كتابة الفصل بنفسك ثم تعيين التصميم باليد.

أعلم أن هذا لا يجيب بالضبط على سؤالك ، لكن ربما ستجرب بعض اقتراحاتي.

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