Bildanzeigen funktioniert nicht bei PyQt

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

Bildanzeigen funktioniert nicht bei PyQt

Beitragvon INFACT » Mittwoch 7. Januar 2009, 21:45

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 :)
ein kleines game für die die lust haben http://konaminut.mybrute.com
;-)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Mittwoch 7. Januar 2009, 22:55

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

Beitragvon Panke » Mittwoch 7. Januar 2009, 23:11

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

Beitragvon INFACT » Donnerstag 8. Januar 2009, 16:46

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:
ein kleines game für die die lust haben http://konaminut.mybrute.com

;-)
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Donnerstag 8. Januar 2009, 17:32

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

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

Beitragvon INFACT » Donnerstag 8. Januar 2009, 20:31

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
ein kleines game für die die lust haben http://konaminut.mybrute.com

;-)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder