سؤال

بالنسبة لأولئك الذين لم يقرؤوا Questoins QT الخاص بي، أتعلم كيو تي لمشروع. لدي خبرة محدودة فقط مع تصميم واجهة المستخدم الرسومية على الإطلاق، وليس في كيو تي.

لدي تخطيط أفقي أريد ملء مع بعض الأزرار. يمكنني إطعام هذه الأزرار على ما يرام، لكن أزراري المربعة سابقا تمتد أفقيا لأخذ مساحة أكبر.

أريد أن أترك مدير التخطيط يحدد أفضل طريقة لحجم هذه الأزرار، لكنني أريد أيضا أن تظل أبعادهم الأصلية سليمة. على سبيل المثال، إذا قمت ببدء تشغيل باستخدام أزرار 32x32 التي تحتاج إلى تقلص لتناسب جميعها في التصميم، فأريد أن يتقلص متناسبا بحيث يتم الحفاظ على عرض مقياس الارتفاع. 20X20، 16x16، 12 × 12 سيكون كل شيء على ما يرام، ولكن 24x16 سيكون مثالا على الأبعاد غير المقبولة.

لقد تضعف مع سياسات الحجم على الأزرار وخيارات تمتد. أنا لا أرى، حتى بعد قراءة فصول QPushbutton و Qhboxlayout كيفية القيام بذلك. كيف يتم إنجازها؟

شكرا.

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

المحلول

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

نصائح أخرى

يجب أن نلقي نظرة على الإجابات على هذا السؤال. وبعد هذا هو خلاصة إجابتي هناك.

تحتاج إلى إنشاء مشتق مخصص ل Qlayoutitem، والتي تتجاوز bool hasHeightForWidth() و int heightForWidth( int width ) للحفاظ على نسبة الارتفاع. يمكنك إما اجتياز الزر في واستفسره، أو يمكنك ضبط النسبة مباشرة. ستحتاج أيضا إلى التأكد من إرجاع الدالة Widget () مؤشر إلى الزر المناسب.

بمجرد الانتهاء من ذلك، يمكنك إضافة عنصر تخطيط إلى تخطيط بنفس الطريقة التي ستقوم بها عنصر واجهة مستخدم. لذلك عند إضافة زر الخاص، قم بتغييره لاستخدام فئة عنصر التخطيط المخصص الخاص بك.

لم أختبر في الواقع أي من هذا، فهذا هو الحل النظري في هذه المرحلة. لا أعرف أي طريقة للقيام بهذا الحل من خلال المصمم، إذا كان ذلك مطلوبا.

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