Frage
Ich möchte das Bild in der QT -Anwendung bearbeiten, ich habe zwei verwendet QLabel
und legen Sie zwei verschiedene Bild (verwenden Sie QPixmap
) Auf jedem möchte ich jetzt ein Bild über ein anderes setzen (genau wie Foto -DJ -Setzen Sie einen neuen Rahmen und füge Cartoons zum Bild hinzu).
Ich verwende Drag and Drop dafür und kann das Bild verschieben (Drag), aber dieses gezogene Bild überschreibt ein anderes Bild. Ich möchte das Bild über das zweite Bild über das zweite Bild gezogen und die Position des gezogenen Bildes auf dem zweiten Bild festlegen und nicht überschreiben. Ich habe ein Bild hinzugefügt, das ich möchte (Bild bearbeiten).
Lösung
Um das erste Bild über den zweiten zu rendern, versuchen Sie es so etwas wie
QPixmap background(":/dj.jpg");
QPixmap object(":/fish.png"); //a png with transparent background
QPixmap merge = background.copy();
QPainter painter(&merge);
painter.drawPixmap(X,Y, object); //draw the fish on background at point X,Y
painter.end();
MyLabel->setPixmap(merge); //update the label
Wobei x, y mit Klicks oder Mausverfolgung eingestellt wird.