Bildanzeigen funktioniert nicht bei PyQt

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

Hallo:

Code: Alles auswählen

from PyQt4 import QtCore, QtGui
import sys

def ZeigeBild(Bild):
    class FotoGui(QtGui.QWidget):
        def __init__(self,parent=None):
            QtGui.QWidget.__init__(self,parent)
            self.grafik=QtGui.QImage(Bild)
            self.ziel=QtCore.QRect(10,10,130,130)
            self.quelle=QtCore.QRect(0,0,
                                     self.grafik.width(),
                                     self.grafik.height())
        def PainEvent(self, event):
            painter=QtGui.QPainter(self)
            painter.drawImage(self.ziel,self.grafik,self.quelle)

    
    app=QtGui.QApplication(sys.argv)
    widget=FotoGui()
    widget.resize(150,150)
    widget.show()
    sys.exit(app.exec_())
Wenn ich dieses Skript ausführe:

Code: Alles auswählen

ZeigeBild("Test.bmp")
Passiert Garnichts, bisauf dass ich ein leeres Widget habe, auf dem aber kein Bild ist
Was mache ich denn Falsch?

Code: Alles auswählen

frage= "Kann PyQt keine Bitmaps lesen?"
formate= "Was es in PyQt für formate gibt"
Fehler= "Warum ist das nur ein leerer Gui?"

If frage:
    print formate
Else:
    print Feher
Bitte :)
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Du solltest vielleicht die richtige Methode überschreiben: QWidget.paintEvent
Panke
User
Beiträge: 185
Registriert: Sonntag 18. März 2007, 19:26

Oder du lädst das Bild in ein QPixmap und nutzt ein QLabel zum anzeigen.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Ich habe das script jetzt so umgeschireben:

Code: Alles auswählen

from PyQt4 import QtCore, QtGui
import sys

from PyQt4.QtCore import *
from PyQt4.QtGui import *

def ZeigeBild(Bild):
    
    class FotoGui(QGraphicsPixmapItem):
        def __init__(self,Bild,parent=None):
            QGraphicsPixmapItem.__init__(self, QPixmap(Bild)) 

    widget=FotoGui(Bild)
    widget.show()


    
app=QApplication(sys.argv)
ZeigeBild("Test.bmp")
Aber immernoch kein Bild^^

Vielleicht liegt es daran, dass ich nicht genau weiß wie ich das mit einem QLabel machen soll.
Auch mit mehrmaligem herumprobieren und Lösungen suchen klappte es nicht...
:cry:
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Erbe lieber von QLabel und benutze die Methode `setPixmap' zum Anzeigen.

Aber sag mal ... du kennst doch die Doku oder? Da steht alles drin.
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Ja aber ich wusste nicht so recht was ich hiermit :
QLabel.setPixmap (self, QPixmap)

This method is also a Qt slot with the C++ signature void setPixmap(const QPixmap&).

Anfangen sollte.

So doof das auch klingt:
*Ich hatte einen Geitesblitz und dann hatte ichs raus*

oder auch durch eure hilfe :roll: :lol: :D
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
Antworten