سؤال

لدي مربع حوار QT مع العديد من عناصر التحكم التي تحتاج إلى معالجة أكثر أو أقل موحدة. أريد تخزين المؤشرات لهم في صفيف والتعداد عليها.

في Windows ، سأستخدم معرفات التحكم المتسلسلة و GetDlgItem(hDlg, IDC_BASEID + i) في حلقة. في الكاكاو ، كنت أستخدم علامات العرض المتسلسلة أو أدرجها في حاوية غير مرئية. ما هي طريقة QT؟

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

المحلول

يمكن Qobject :: FindChildren (Qregexp) يمكن أن تفعل الخدعة إذا كانت الأدوات المصغرة لها أسماء مماثلة.

QList<QLineEdit*> lineEdits = dialog->findChildren<QLineEdit*>(QRegExp("lineEdit[0-9]+"));
foreach (QLineEdit* lineEdit, lineEdits) {
    lineEdit->clear();
}

نصائح أخرى

تخبرك إجابة Dupe كيفية القيام بذلك - لكن ربما لا ينبغي عليك ذلك

تتمثل طريقة QT في تسجيل نفس الفتحة (IE Handler) لجميع المصادر - ثم في معالج الأحداث ، استخدم الحقل في الحدث لإخبارك بالأدوات التي يتم إطلاقها والحصول على مؤشر إليها.

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