Ich habe vor kurzem angefangen, Qt zu lernen.
Ich habe nicht ganz klar, wie kann ich mit QPainter
Klasse malen. Lassen Sie uns sagen, ich möchte nur ein paar Punkte in das Fenster setzen:Wie male ich mit QPainter?
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();
}
Und danach habe ich nichts!
Können Sie mir bitte sagen, wo ich falsch liege?
und was, wenn ich nicht auf paintEvent reagieren möchte? zum Beispiel, wenn ich einen Knopf drücke, möchte ich etwas malen. Wie kann das gemacht werden? – chester89