Niedawno zacząłem uczyć się Qt.
Nie do końca zrozumiałem, jak można malować przy użyciu klasy QPainter
. Powiedzmy, że chcę po prostu umieścić kilka punktów w oknie:Jak malować za pomocą QPaintera?
class PointDrawer: public QWidget {
Q_OBJECT
private:
QPainter p;
public:
PointDrawer(QWidget* obj=0): QWidget(obj), p(this) {}
virtual void paintEvent(QPaintEvent*) {
p.setPen(QPen(Qt::black, 3));
int n = 8;
while(...) {
qreal fAngle = 2 * 3.14 * i/n;
qreal x = 50 + cos(fAngle) * 40;
qreal y = 50 + sin(fAngle) * 40;
p.drawPoint(QPointF(x, y));
i++;
}
}
}
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
PointDrawer drawer;
drawer.resize(200, 200);
drawer.show();
return app.exec();
}
A potem nic nie dostałem!
Czy możesz mi powiedzieć, gdzie się mylę?
i co, jeśli nie chcę reagować na paintEvent? na przykład, jeśli naciśniesz jakiś przycisk, chcę coś pomalować. jak to zrobić? – chester89