- protected:
- void paintEvent(QPaintEvent *event);
void QPainter::drawRect(int x, int y, int width, int height)
- void Widget::paintEvent(QPaintEvent *event)
- {
- QRectF rectangle(10.0, 20.0, 80.0, 60.0);
-
- QPainter painter(this);
- painter.drawRect(rectangle);
- }
2、画椭圆矩形
void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = ...)
- void Widget::paintEvent(QPaintEvent *event)
- {
- QRectF rectangle(10.0, 20.0, 100.0, 60.0);
-
- QPainter painter(this);
- painter.drawRoundedRect(rectangle, 15.0, 15.0);
- }
3、画圆
void QPainter::drawEllipse(int x, int y, int width, int height)
- void Widget::paintEvent(QPaintEvent *event)
- {
- QRectF rectangle(10.0, 20.0, 60.0, 60.0);
- QPainter painter(this);
- painter.drawEllipse(rectangle);
- }
或者使用
void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
起始角和偏移角必须必须是度数的十六分之一。即1°表示为1*16,直角90°表示为90*16。
- void Widget::paintEvent(QPaintEvent *event)
- {
- QRectF rectangle(10.0, 20.0, 60.0, 60.0);
- int startAngle = 0 * 16;
- int spanAngle = 360 * 16;
-
- QPainter painter(this);
- painter.drawArc(rectangle,startAngle,spanAngle);
- }