سؤال

لقد بدأت للتو في استخدام QTCreator الليلة ، ويبدو أنه يضع جميع الأشياء الموجودة داخل ملف واجهة المستخدم. تابعت برنامجًا تعليميًا لإنشاء مورد لأيقونات بلدي ، ثم أضفتها إلى شريط قائمة في الأعلى.

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

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

المحلول

عناصر شريط القائمة كائنات العمل. لفعل شيء ما عند النقر عليها ، تحتاج إلى التقاط triggered() الإشارة من العمل. اقرأ المزيد عن الإشارات والفتحات هنا.

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

أولاً ، نعلن عن فتحة جديدة في فئة النافذة الخاصة بك:

private slots:
  void clickMenuButton();

بعد ذلك ، في مُنشرك ، تحتاج إلى توصيل الإشارة المشغلة بالفتحة الجديدة:

connect(ui.actionObject, SIGNAL(triggered()), this, SLOT(clickMenuButton()));

الوسيطة الأولى هي الكائن الذي يحمل الإشارة التي سنستمع إليها (زر القائمة الخاصة بك). والثاني هو اسم الإشارة. والثالث هو الكائن الذي يحمل فتحة الاستلام (في هذه الحالة ، نافذةنا). الرابع هو الفتحة.

ومثل ذلك، clickMenuButton() سيتم استدعاؤه كلما تم النقر على الإجراء.

كما قلت من قبل ، يمكن لـ QT أيضًا قم بتوصيل الإشارات تلقائيًا إلى فتحات. يبدو أن العيب هنا هو أنه لا يمكنك تغيير اسم الفتحة ، لكنك لا تحتاج إلى توصيلها أيضًا.

يدعم Creator QT إنشاء فتحات للأدوات الحاجيات: في حالة إجراء القائمة الخاص بك ، يجب عليك الانتقال إلى مصمم النماذج ، ويجب أن ترى قائمة من الإجراءات في النموذج الخاص بك (إذا لم تقم بذلك ، تجد محرر العمل). انقر بزر الماوس الأيمن على الإجراء الذي تريده ، وادفع اذهب إلى الفتحة .... هناك ، انقر نقرًا مزدوجًا triggered().

سيفتح QT Creator بعد ذلك الفتحة الجديدة في محرر الرمز الخاص بك ، ويمكنك أن تفعل ما تريد هنا!

نصائح أخرى

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

يجب أن يكون هناك محرر إجراءات في مكان ما. من هناك تضيف إجراءً ، ثم انقر بزر الماوس الأيمن فوقه أو أي شيء لإضافة أيقونة إليه ، ثم اسحبه في القائمة ثم النقر فوقه إلى إنشاء فتحة له. هذه هي الطريقة التي تعمل بها في التكامل VS على الأقل.

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