mein Programm gibt mir eine Fehlermeldung rauß:
unhandled AttributeError "imgLabel"
Soweit meine Lektüre das hergibt, könnte es sich um ein
nicht zu findendes Attribut handeln. Bin mir
aber nicht ganz sicher, ob es auch ein andere Fehler
sein könnte.
Ich habe <imgLabel> in der Klassen-Methode
<__init__(self, parent=None)> definiert und beziehe
mich in der Klassen-Methode <scaleImage(self, factor)>
auf dieses Attribut.
Muss ich <imgLabel> als Klassen-Attribut definieren?
Und wenn, wie sollte ich es als Klassen-Attribut definieren?
Was wird in der Regel als Klassen-Attribut defniert und was
wird in Klassen-Methoden definiert ?
Z.b. benötige ich das Attribut <scalefactor> in mehreren
Methoden.
Hier ein Code-Schnipsel:
Code: Alles auswählen
def __init__(self, parent=None):
QMainWindow.__init__(self, parent)
...
self.scrollArea = QScrollArea()
self.imgLabel = QLabel()
self.image = QImage("./media/images/aventurien.jpg")
self.imgLabel.setBackgroundRole(QPalette.Dark)
self.imgLabel.setScaledContents(True)
self.imgLabel.setPixmap(QPixmap.fromImage(self.image))
self.scrollArea.setWidget(self.imgLabel)
self.scrollArea.setBackgroundRole(QPalette.Dark)
self.setCentralWidget(self.scrollArea)
...
def scaleImage(self, factor):
assert self.imgLabel.pixmap() is not None
self.scalefactor *= factor
self.imgLabel.resize(scalefactor * self.imgLabel.pixmap().size())
self.adjustScrollBar(self.scrollArea.horizontalScrollBar(), factor)
self.adjustScrollBar(self.scrollArea.verticalScrollBar(), factor)
self.zoomInAct.setEnabled(scaleFactor < 3.0)
self.zoomOutAct.setEnabled(scaleFactor > 0.333)
...