【发布时间】:2009-04-01 21:53:15
【问题描述】:
我最近开始学习 Qt。
我不太清楚如何使用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();
}
然后,我什么也没得到!
你能告诉我哪里错了吗?
【问题讨论】:
-
如果我不想对paintEvent做出反应怎么办?例如,如果我按下某个按钮,我想画一些东西。这是怎么做到的?