Pyqt QgraphicsView فشل في setwindowicon
-
29-09-2019 - |
سؤال
أنا أستخدم 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 قل أن هذه الخاصية تكون منطقية بشكل عام بالنسبة للأدوات ذات المستوى الأعلى. ربما هذا هو سبب السلوك مختلف.