Seite 1 von 1

Text in Qimage setzen

Verfasst: 27. Dezember 2010 15:20
von Tomek
ich habe ein QLabel dass ein QImage (eine png-Datei) enthält.

Jetzt möchte ich ÜBER das dargestellte Bild einen Text setzen. Z.b. die Zahl "1".

Ich habe mit Hilfe von paintEvent drawText() aufgerufen. Es funktionier aber der Text wird von der Grafik überlagert und ist nicht sichtbar. Hat jemand eine Idee wie ich das ändern kann?

Verfasst: 27. Dezember 2010 15:44
von franzf
Das Entscheidende ist nicht DASS du paintEvent implementierst, sondern das WIE. Und hier machst du den entscheidenden Fehler, recht wahrscheinlich rufst du die paintEvent-Implementierung von QLabel nach deinen Malaktionen auf, du solltest sie aber vorher aufrufen.

Verfasst: 27. Dezember 2010 16:13
von Tomek
Ich implementiere die malaktion in das paintEvent. Ich habe auch schon versucht die Reihenfolge zu verändern, aber es hat nichts geholfen.

Hier der Code in PyQt:

Code: Alles auswählen

class analysetool2(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self)
        
        self.main_widget = QtGui.QWidget()              #The Main Widget 
        self.setCentralWidget(self.main_widget)
        self.text = "TEXT"
        
        self.label = QtGui.QLabel(self.main_widget)

        self.image = QtGui.QImage("c:\Tomek\Grafiken\web.png")
        self.label.setPixmap(QtGui.QPixmap.fromImage(self.image))
        
        self.showMaximized()

    def paintEvent(self, event):

        qp = QtGui.QPainter()
        qp.begin(self)
        self.drawText(event, qp)
        qp.end()

    def drawText(self, event, qp):
      
        qp.setPen(QtGui.QColor(168, 34, 3))
        qp.setFont(QtGui.QFont('Decorative', 30))
        qp.drawText(100, 100, self.text)
[/code]