سؤال

أنا أستخدم QGgraphicsView من Sublassed في mdiarea ، أريد أن أكون قادرًا على تغيير أيقونة النافذة من "داخل" الكائن ، لكن يبدو أنه يتجاهلني ... لا توجد أخطاء أو تحذيرات ... إنها لا تفعل ذلك فقط 'ر تفعل ذلك.

if self.world.is_dirty:
    self.setWindowIcon( QtGui.QIcon ( 'images/dirty.png' ) )
    self.setWindowTitle('dirty')
else:
    self.setWindowIcon( QtGui.QIcon ( 'images/clean.png' ) )
    self.setWindowTitle('clean')

باستخدام ما سبق ، يتغير WindowTitle تمامًا وكما هو متوقع ، لكن الرمز يظل ثابتًا بعناد كرمز Mainwindow. اعتقدت أنه قد يكون متعرجًا مع QICON ، لكنني راجعت ISNULL () وهذا خطأ .. لذلك ليس فارغًا.

أثناء الاختبار ، جربت تغيير الرمز من كائن Mainwindow وهذا يعمل بشكل جيد ...

self.mdiArea.activeSubWindow().setWindowIcon(QtGui.QIcon ('images/dirty.png'))

فلماذا يتجاهلني عندما أحاول من العرض؟

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

المحلول

أنظر إلى مستندات C ++ لعلامة Windowicon يقولون أن الخاصية لا معنى لها إلا إذا كانت القطعة هي في الواقع نافذة. أفترض الخاص بك QGraphicsView أليس في الواقع نافذتك؟

في المقابل مستندات خاصية WindowTitle قل أن هذه الخاصية تكون منطقية بشكل عام بالنسبة للأدوات ذات المستوى الأعلى. ربما هذا هو سبب السلوك مختلف.

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