clicked event für QImage

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
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.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

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?
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
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.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Mein bild wird auf einem Qrect abgebildet. Das hat imho auch kein clicked() signal. Was soll ich stattdessen nehmen
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
franzf
User
Beiträge: 78
Registriert: Samstag 29. August 2009, 10:21

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.
Antworten