كيف يمكنني إنشاء مخصص فتحة في qt4 مصمم ؟
-
03-07-2019 - |
سؤال
كلما كنت تستخدم إشارة/فتحة مربع الحوار محرر يجب أن تختار من القائمة الحالية من فتحات.لذا فإن السؤال هو كيف يمكنني إنشاء مخصص اسمه فتحة ؟
المحلول
للأسف لم يكن هذا ممكنا في QT4.
في Qt3 يمكنك إنشاء فتحات مخصصة التي فأين تنفيذها في ملف ui.h. ومع ذلك، QT4 لا تستخدم هذا الملف بحيث لا يتم اعتماد فتحات مخصصة.
وهناك بعض مناقشة هذه المسألة على أكثر من QtForum أ >
نصائح أخرى
هذا لا يبدو أن يكون من الممكن في نسخة Qt Designer 4.5.2 ، لكنه لا يمكن يتم ذلك من إشارة/فتحة محرر قفص الاتهام-القطعة في النافذة الرئيسية.
هذا هو ما عملت بالنسبة لي
- التبديل إلى تحرير إشارات/فتحات وضع (F4)
- سحب وإسقاط من القطعة التي تنبعث منها إشارة إلى القطعة التي تلقي إشارة.
- A تكوين اتصال سيظهر مربع الحوار تظهر الإشارات التي تنبعث منها القطعة و فتحات استلام القطعة.انقر تحرير... تحت فتحات العمود على اليمين.
- A الإشارات/فتحات ReceivingWidget سيظهر مربع الحوار.هنا ما هو ممكن إلى انقر فوق رمز زائد تحت فتحات لإضافة فتحة جديدة من أي اسم.
- ثم يمكنك العودة الاتصال الخاصة بك جديدة فتحة في تكوين اتصال مربع الحوار ، أو في الواقع في إشارة/فتحة محرر dockwidget مرة أخرى في النافذة الرئيسية.
التحذير:أنا باستخدام PyQt و لقد حاولت استخدام فتحات وأضاف في هذا الطريق من بيثون ، وليس من C++, لذا الأميال الخاص بك قد تختلف...
وانقر على الحق في النافذة الرئيسية وحدد "إشارات التغيير وفتحات" وإضافة فتحة جديدة. وسوف تظهر في محرر فتحة الإشارة.
وأنا قادرة على القيام بذلك عن طريق:
في MainWindow.h، أضف السطر:
public slots:
void example();
وفي فئة MainWindow.
في MainWindow.cpp
void MainWindow::example() {
<code>
}
وهذا لا يبدو أن يكون ممكنا بطريقة بسيطة.
ومصمم فقط يسمح لك لتعزيز الحاجيات الحالية لالحاجيات المخصصة الخاصة بك. ومع ذلك لا يسمح لك لربط الإشارات وفتحات من فئة من الحاجيات تعزيزها.
وهذا الطريق من الممكن لخلق المساعد للمصمم كما هو <وأ href = "https://doc.qt.io/qt-4.8/designer-creating-custom-widgets.html" يختلط = "نوفولو noreferrer "> وصفت هنا وفي الصفحات التي تليه.
والسير العادي للعمل هو تعزيز القطعة إلى الفئة الخاصة بك ومن ثم توصيله يدويا في التعليمات البرمجية الخاصة بك. يتم وصف هذه العملية هنا
وليس من الممكن أن تفعل ذلك، لأنه يعني أنك ستضيف فتحة لفئة كيو تي القائمة مثل QPushButton
التي ليست في الحقيقة وسيلة للذهاب.
ويجب إنشاء QWidget
الخاصة بك في نهاية المطاف إن شاء subclasses ترث واحدة موجودة. ثم إدماجه مصمم كيو تي باعتباره المساعد على النحو المقترح. وجود فئة الخاصة بك يسمح لك بإضافة / modifiy الإشارات / فتحات المتاحة على النحو الذي تريد.
ولا ننسى فتحة ميزات لصناعة السيارات في الاتصال. وهناك عدد قليل من العيوب، مثل الحاجة إلى إعادة تسمية وظيفة الخاص بك إذا قمت بإعادة تسمية عنصر واجهة المستخدم، ولكن نستخدم هذه كثيرا في الشركة التي أعمل بها.
يمكنك استخدام السحر فتحة شكل
void on_objectName_signal() {
// slot code here, where objectname is the Qt Designer object name
// and the signal is the emission
}
الاتصال أن هذا الأسلوب هو الأسلوب connectSlotsByName و كلما الإشارة المنبعثة ، هذه الفتحة يتم استدعاء.
وربما سوف تساعد.
وافتراضيا لديك لاختيار من القائمة الموجودة من فتحات. ولكن يمكنك إضافة فتحة بالنقر بزر الماوس الأيمن على اعتراضك في القائمة في الجانب الأيمن من مصمم واختر "فتحة / الإشارات" وإضافة الخاصة بك فتحة مخصصة / إشارة. بعد ذلك، يمكنك اختيار ذلك في إشارة / فتحة المحرر.
وانقر على الأداة التي كتبها الزر الأيمن
وتعزيز القطعة إلى فئة قمت بتعريفه
وانقر على الأداة التي كتبها الزر الأيمن مرة أخرى
وسترى أن إشارة وفتحة هو للتحرير