企业网站建设应注意什么,兰州官网优化技术厂家,搭建单位网站,建造师职业人才网平台使用绘图事件#xff0c;绘制坦克。
效果
效果很逼真#xff0c;想象力#xff0c;有没有。
示例
代码像诗一样优雅#xff0c;有没有。
包含头文件
#include QApplication
#include QWidget
#include QPainter绘制坦克类
class TankWidge…使用绘图事件绘制坦克。
效果
效果很逼真想象力有没有。
示例
代码像诗一样优雅有没有。
包含头文件
#include QApplication
#include QWidget
#include QPainter绘制坦克类
class TankWidget : public QWidget
{
public:TankWidget(QWidget *parent 0): QWidget(parent){setFixedSize(400, 300);}protected:void paintEvent(QPaintEvent *){QPainter painter(this);painter.setRenderHint(QPainter::Antialiasing, true);int nOffset 0;for(int i 0; i 4; i){// 绘制坦克炮筒painter.setPen(Qt::black);painter.setBrush(Qt::gray);painter.drawRect(90nOffset, 100, 20, 60);// 绘制坦克车身painter.setBrush(Qt::darkGreen);painter.drawRect(30nOffset, 140, 60, 20);painter.drawRect(40nOffset, 120, 40, 20);// 绘制坦克底盘painter.setPen(Qt::black);painter.setBrush(Qt::green);painter.drawRect(10nOffset, 160, 100, 40);// 绘制坦克履带painter.setPen(Qt::black);painter.setBrush(Qt::darkGray);// 履带painter.drawEllipse(12nOffset, 190, 20, 20);painter.drawEllipse(37nOffset, 190, 20, 20);painter.drawEllipse(62nOffset, 190, 20, 20);painter.drawEllipse(87nOffset, 190, 20, 20);nOffset 150;}}
};调用
int main(int argc, char *argv[])
{QApplication app(argc, argv);TankWidget widget;widget.show();return app.exec();
}分析
首先通过绘制矩形、椭圆等基本图形进行坦克的绘制。其中通过设置画刷的颜色和绘制顺序等绘制技巧实现了具有逼真感的坦克效果。需要注意的是在Qt中可以通过重载QWidget的paintEvent函数来实现对控件的绘制操作。在paintEvent函数中可以使用QPainter对象进行各种基本图形的绘制并设置画笔、画刷等属性以达到所需的效果。除此之外还可以使用QPixmap和QImage等对象将一幅静态的坦克图像加载到窗口中来实现更加逼真的坦克效果。