A complete simple example showing one way to do it (slightly different to my explanation above):
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPixmap>
#include <QDebug>
Q_OBJECT
public:
setFixedSize
(QSize(512,
512));
background.load("background_512x512.png");
marker.load("marker_16x16.png");
}
void setMarkedPoint
(const QPoint &point
) { markedPoint = point;
update();
}
protected:
p.drawPixmap(0, 0, background);
if (!markedPoint.isNull())
p.drawPixmap(markedPoint, marker);
}
private:
};
int main(int argc, char *argv[]) {
Widget w;
w.show();
w.
setMarkedPoint(QPoint(100,
100));
return app.exec();
}
#include "main.moc"
#include <QApplication>
#include <QWidget>
#include <QPainter>
#include <QPixmap>
#include <QDebug>
class Widget: public QWidget {
Q_OBJECT
public:
Widget(QWidget *p = 0): QWidget(p) {
setFixedSize(QSize(512, 512));
background.load("background_512x512.png");
marker.load("marker_16x16.png");
}
void setMarkedPoint(const QPoint &point) {
markedPoint = point;
update();
}
protected:
void paintEvent(QPaintEvent *event) {
QPainter p(this);
p.drawPixmap(0, 0, background);
if (!markedPoint.isNull())
p.drawPixmap(markedPoint, marker);
}
private:
QPixmap background;
QPixmap marker;
QPoint markedPoint;
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
Widget w;
w.show();
w.setMarkedPoint(QPoint(100, 100));
return app.exec();
}
#include "main.moc"
To copy to clipboard, switch view to plain text mode
You need to provide the two images.
Bookmarks