سؤال

أحاول أن أجعل خلفية نافذتي شفافة. ولكن تحت الحاجيات التي ترى أجزاء من صورة سطح المكتب الخاصة بي. الآن لدي هذا في المنشئ:

    self.setFocusPolicy(Qt.StrongFocus)
    self.setAttribute(Qt.WA_QuitOnClose,True)

    self.setBackgroundRole(QtGui.QPalette.Base)
    self.setAttribute(Qt.WA_NoSystemBackground)
هل كانت مفيدة؟

المحلول

بالإضافة إلى إجابة GS، تشرح هذه الأسئلة الشائعة لماذا (قبل QT 4.5) لا يمكنك تحقيق ذلك:

أسئلة وأجوبة رابط:

لا يوجد دعم مباشر للشفافية الجزئية، حيث تكون النافذة شفافة والحاجيات على أنها ليست في كيو تي.

تذكر أن أحدث إصدار من PYQT تم إنشاؤه مقابل QT 4.4، وكذلك لا يدعم النافذة شبه الشفافة التي تريدها. ستعمل إجابة GS الأخرى، حول SetautoFillBackground (True) إذا كنت تقوم بتحديد لون الخلفية لنصفك الرئيسي إلى أي شيء آخر غير شفافة.

أيضا، راجع وثائق Qt.wa_Nosysterbackground، تقول إنك لا تستطيع الاعتماد على التأثير الشفاف الذي لديك حتى الآن:

QT :: WA_NOSYSTEMBERBRAGER.

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

نصائح أخرى

لقد وجدت للتو هذه:

إنشاء نوافذ شفافة

منذ QT 4.5، كان من الممكن إنشاء نوافذ مع مناطق شفافة على أنظمة النوافذ التي تدعم المركبات.

لتمكين هذه الميزة في عنصر واجهة مستخدم من أعلى مستوى، قم بتعيين سمة QT :: WA_TRANSLUCENTBAKENGER مع SetAttribute () والتأكد من رسم خلفيته بألوان غير شفافة في المناطق التي تريد أن تكون شفافا جزئيا.

Pyqt لا يزال Qt 4.4، ربما هذه هي المشكلة.

جرب هذا من أجل الحاجيات الخاصة بك:

widget.setAutoFillBackground(True)

أعتقد أنه يمكنك أيضا تعيينه في مصمم كيو تي.

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