Gần đây tôi đã bắt đầu học Qt.
Tôi không hiểu rõ làm thế nào tôi có thể vẽ bằng cách sử dụng lớp QPainter
. Giả sử tôi muốn chỉ để đặt một vài điểm trong cửa sổ:Làm cách nào để vẽ bằng 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();
}
Và sau đó, tôi không có gì!
Bạn có thể cho tôi biết tôi đã sai ở đâu không?
và điều gì sẽ xảy ra nếu tôi không muốn phản ứng trên paintEvent? ví dụ, nếu tôi nhấn một số nút, tôi muốn vẽ một cái gì đó. Điều này có thể giải quyết như thế nào? – chester89