سؤال

ولقد قدمت مشروع مع كيو تي و OpenGL.

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

والآن سؤالي هو:

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

وأي نصائح، وغيرها من خيوط يفضل.

وشكرا.

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

المحلول

والآلية الدقيقة التي تعتمد على أدوات واجهة المستخدم الرسومية التي تستخدمها. بشكل عام، يحتاج التطبيق لخدمة حلقة المدى باستمرار للأحداث التى سيتم ارسالها. هذا هو السبب كان التطبيق الخاص بك لا يستجيب عندما كان لديك تشغيله في حلقة while.

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

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