سؤال

في Pyqt 4.5، لدي تخطيط داخل تخطيط آخر. أود إزالة الطبقة الفرعية من والديها، وإخفائها. استطيع ان اقول parent_layout.removeItem(child_layout) لإزالة التصميم من والديها، ولكن لا يزال يظهر على القطعة. لا أستطيع إيجاد أي طريقة لإخفائها في خطوة واحدة، كما QLayout لا يملك hide() طريقة مثل QWidget هل.

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

المحلول

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

نصائح أخرى

مع بعض المساعدة من flupke على #qt, ، خطرت لي:

for i in range(0, child_layout.count()):
  child_layout.itemAt(i).widget().hide()
parent_layout.removeItem(child_layout)

الذي يفترض كل أطفال تخطيط الطفل هم الحاجيات. هل هناك حل أبسط؟

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