كيف يمكنني ضبط حجم Qdialog اعتمادا على طول النص لأحد أطفالها؟

StackOverflow https://stackoverflow.com/questions/1675499

  •  16-09-2019
  •  | 
  •  

سؤال

انا املك QDialog أنا أعمل مع. انها مصنوعة إلى حد ما مثل QMessageBox. وبعد لقد لاحظت أن حجم QMessageBox (وحجم ملصقه) يعتمد على حجم الرسالة المعروضة.

كيف يمكنني جعل حجم بلدي QDialog ضبط تلقائيا مثل QMessageBoxب في الوقت الحاضر بلدي QDialog يحتوي على مربع زر وتسمية، و QDialog هو تخطيط عمودي.

(أعرف أنني يمكن أن استخدم مربع الرسالة مباشرة ولكن في النهاية سيكون لدي حوار أكثر تعقيدا.)

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

المحلول

الحل التلقائي:

استخدام تخطيطات ومعرفة سياسات الحجم ل QSizePolicy::Expanding. وبعد في Qtdesigner، بمجرد وضع كل أطفالك على Qdialog الخاص بك، ثم انقر فوق ضبط الحجم زر تخطيط القادم. سيتم تغيير حجم Qdialog تلقائيا عند وقت التشغيل.

الحل اليدوي:

ال QWidget الطبقة لديها طريقة adjustSize التي تغيير حجم Qwidget لتناسب محتواها. فقط اتصل به عندما يتم تعيين جميع الأطفال.

نصائح أخرى

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

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