Seite 1 von 1
clicked event für QImage
Verfasst: Mittwoch 11. November 2009, 20:34
von INFACT
Warum gibt es kein clicked() SIGNAL für QImage?
Code: Alles auswählen
self.img = QtGui.QImage(self.config.bar["background"])
auf self.img kann ich nicht connect(self.img, SIGNAL("clicked()"), self.close)
anwenden. dann kommt immer ein attribute error für self.img
Kann man das irgentwie umgehen?
Verfasst: Mittwoch 11. November 2009, 22:33
von lunar
Lies die Dokumentation zu QImage und überlege, wozu diese Klasse da ist, und warum ein clicked()-Signal für diese Klasse unsinnig wäre.
Wenn Du Klicks auf ein Bild behandeln möchtest, dann nutze die Signale des Steuerelements, mit dem Du das Bild anzeigst.
Verfasst: Donnerstag 12. November 2009, 08:34
von INFACT
Qt provides four classes for handling image data: QImage, QPixmap, QBitmap and QPicture. QImage is designed and optimized for I/O, and for direct pixel access and manipulation, while QPixmap is designed and optimized for showing images on screen. QBitmap is only a convenience class that inherits QPixmap, ensuring a depth of 1. Finally, the QPicture class is a paint device that records and replays QPainter commands
Also sollte ich QPixmap nehmen, oder?
Verfasst: Donnerstag 12. November 2009, 08:42
von lunar
Zum einen das, aber auch QPixmap hat kein "clicked()"-Signal. Auf ein abstraktes Bild kann man nicht klicken, sondern nur auf ein Steuerelement, welches dieses Bild anzeigt.
Verfasst: Donnerstag 12. November 2009, 16:15
von INFACT
Mein bild wird auf einem Qrect abgebildet. Das hat imho auch kein clicked() signal. Was soll ich stattdessen nehmen
Verfasst: Donnerstag 12. November 2009, 16:54
von franzf
INFACT hat geschrieben:Mein bild wird auf einem Qrect abgebildet. Das hat imho auch kein clicked() signal. Was soll ich stattdessen nehmen
Definitiv nicht... ein QRect kann nix malen und hat auch keine (übergeordnete) Representation im Window-System - und darum geht es.
Ein Bild hat vllt. ein Rect - die Größe und die Lage im Koordinatensystem.
Sowas geht doch definitiv nicht, das sieht bei dir im Code auch anders aus.
Code: Alles auswählen
pix = QPixmap("pix.png")
pix.show() # gehtgichtgibtsnicht
rect = QRect(50, 50, 250, 250)
rect.setPixmap(pix) # gehtgichtgibtsnicht
rect.show()# gehtgichtgibtsnicht
Schau doch mal bitte im Assistant /Onlinedoku nach wie Bilder angezeigt werden, dann weißt du auch sofort, wie du Klicks abfangen kannst.