• 0
مصفوفة

خاصية الإكمال في مربع النص

سؤال

بسم الله الرحمن الرحيم

ومن ضمن الحملة الإعلانية ل Qt قريت اليوم في منتداكم طلب يقول كيف اركب خاصية اكمال النص طبعا في لغة ثانية الإخوان ردو عليه لكن الأخ الا سأل ماكان يعرف ان Qt لها مثل هذه الخاصية ومضاعفة وموثقة ومتعددة الأشكال عموما هذا الا بأوريكم درس عليه اليوم

بسم الله

خاصية الإكمال او completer تلاقيها في أي ide تكتب كلام الا تلاقيهم يكملوه عنك طبعا هاذي خدمة 6 نجوم صارت البرمجة بالحرف الأول عادي نمشي الموضوع وتلاقيها احيانا موجودة على ال comboBox

واحد يكت mo وفجأة ينط عليه mohammed مهي مشكلة لكن المشكلة انك ماتعرف كيف تسويها !!!!

واليوم انا اوريكم كيف تسووها الصف او الكائن الا يقدملك هذه الخدمة اسمه QCompleter اسم منطقي

فقط اضافو الحرف الأول للمكتبة وبعدها جابوا اسمها الحقيقي عموما

خلينا ناخذ جولة لأهم الدوال والثوابت المرقمة الموجودة فيه :

نبدأ بالثوابت المرقم :

CompletionMode

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

ModelSorting

نموذج الفرز يحدد هل تريد فرز على حسب حالة الحرف او تجاهل حالة الحرف او لا يوجد فرز .

ندخل في الدوال

الدوال كلها بسيطة ومفهومة لا تحتاج شرح وأغلبها غير مهم بل جميعها غير مهم

ولكن لمزيد من المعلومات راجع ملف assistant التابع ل Qt .

الآن ناخذ مثال :

طبعا عشان تبغاهم يعرفو الكلمات الا انت تبغاهم لازم تحطها في حاوية نصية والحاوية في QT هي Qlist<Qstring> لكن هم ورثوها واضافولها ميزات وحولوها الى QstringList نضفلها جميع الأسماء الى نبغا ال completer يشملها انظر المثال

#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QLineEdit line;
QStringList list;
list<<"mohammed"<<"ahmed"<<"alabdaly";
QCompleter completer(list);
line.setCompleter(&completer);
line.show();
return app.exec();
}

مثال بسيط جدا ومفهوم وصغير وسهل و small و easy مايحتاج شرح والصورة بالمرفقات .

مع تمنياتي لكم بالتوفيق والنجاح .

والسلام عليكم ورحمة الله وبركاته .

post-164107-1214904684_thumb.gif

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

6 إجابة على هذا السؤال .

  • 0

طيب اخواني لكم حرية اختيار الدرس القادم حضكم حلو موقع فجوال سي للعرب مقفل

عشان اسهل عليكم المهمة اختارو اما splashscreen وهي مثل الا في برنامج الفوتوشوب اول ما يفتح او اختاروا الضمانات validators وهي خمسة صفوف وفائدتها تحدد المدخلات

او اختاروا openGL في حال اختياره تصبروا يومين اسوي عنه ملف حلو

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

خليني اخش على الموضوع دغري

صراحة انا توقعت تفاعل أكثر من كذا ووضعت لكم حرية إختيار الموضوع ضنا مني ان المواضيع الا اكتبها مملة فصراحة

انا مضايق جدا وأحس انكم تقولوا متى تقفل مواضيعك ونرتاح منك عموما لا اريد ان يكثر كلامي

واتمنى ان ارى منكم تفاعل اجمل ولن انزل موضوع جديد في القسم اليوم عقاب لكم (اعرف محد يهمه ) :wacko:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم .

أخي مواضيعك جميلة لكن المشكلة انه لا يوجد الكثير ممن يهتم بمكتبات الـGUI ...

أنا ارى ان تكتب عن اي شئ تتقنه والثواب والاجر عند الله ::: ربما لا يقرأه أحد اليوم لكن بالتأكيد سيستفيد منه آخرون غداً :thumb_up:

بالتوفيق ان شاء الله ولا تحزن .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

واصل على بركة الله

دروس الـ Qt قليلة باللغة العربية و أنت -ما شاء الله عليك- تتقنها

فلا تبخل بما تستطيع كتابته

و احتسب الأجر و الثواب عند الله

واصل بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

لدي مشكل بسيط في إستخدام QCompleter، لدي نافذة أنشئتها بإستخدام qdesigner، أريد توفير خاصية الإكمال التلقائي لحقل بإسم clientName، الآن قمت بكتابة المثود الآتية:

void Store::loadBillWithClient(int index)
{
if (index == 6)
{
Clients client(ui);
QStringList clients = client.getClients();
QCompleter completer(clients);
completer.setCaseSensitivity(Qt::CaseInsensitive);
ui->clientName->setCompleter(&completer);
}
}

قمت بربطها بهذا الSIGNAL:

connect(ui->tabWidget, SIGNAL(currentChanged(int)), this, SLOT(loadBillWithClient(int )));

يعني لو يقوم المستخدم بالذهاب إلى الtab الذي يحتوي على الحقل clientName يتم ملئ القائمة clients بلائحة أسماء، لكن المشكل عند تنفيذ البرنامج و البداية بالكتابة لاتظهر اي مقترحات، هل لديك تفسير لهذا؟

تم تعديل بواسطه SIFE
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

شكرا لك اخي تابعتك في منتداك موضيعك جميلة

انا عني ممكن validators وشكرا يا ريت تتواجد معنا هنا في المنتدى

حتى نستفيد من خبراتك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .