سؤال

لدي qdialog الفرعية التي تحتوي على مجموعة من QSpinbox الفرعية. عند النقر فوق صندوق Spinbox ، لوحة مفاتيح (QDialog أخرى) حيث يمكنك استخدام Pushbuttons لإدخال الأرقام. يتم تنشيط كلا QDialog عن طريق استدعاء qdialog :: exec () ؛

ومع ذلك ، عند فتح هذا QDialog الثاني ، يغلق الأول. لقد تجولت من خلاله ولاحظت أن QDialog الأول لا ينتهي بعد. Qdialog 1 يرسل "Qdialog :: رفض" بعد الانتهاء من Qdialog 2. ما أريده هو Qdialog 1 لا ينتهي على الإطلاق ، فهو يحتاج إلى تحديث صندوق الدوران بالقيمة التي تم إدخالها وفتح المزيد يريد المستخدم التعديل لاحقًا.

أعتقد أن الأمر يتعلق بـ evialog 1's eventloop الذي يقتل من قبل evialog 2's eventloop. لقد حاولت استخدام QDialog :: عرض على Qdialog 2. تظهر القطعة للحظة (ميلي ثانية) ولكنها لا تظل نشطة. Qdialog 1 مغلق على الفور كذلك.

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

المحلول

تم تعيين QDialog 1 على Qt :: popup ، تم تعيين Qdialog 2 على Qt :: Dialog افتراضيًا. نافذة منبثقة تغلق على مجموعة واسعة من الأحداث. لقد قمت بتعيين علامة QDialog 2 على QT :: popup أيضًا ، والتي لا يبدو أنها تغلق Qdialog 1 بعد الآن.

نصائح أخرى

الطريقة التي وصفتها شفهياً الكود ، يجب ألا ترى المشكلة التي تصفها. دون رؤية الكود الفعلي الخاص بك ، لم أستطع أن أخاطر بتخمين ما يسبب المشكلة. ومع ذلك ، أستطيع أن أقول على وجه اليقين exec() في مربع الحوار ، ثم داخل هذا التشغيل exec() في مربع الحوار B (من زر واحد) ، وكان حوار A البقاء متاحًا عند خروج مربع الحوار B.

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