学习目标:
- 了解Qt的绘图
学习内容:
1.Qt绘图机制
qt中的所有的图都是画出来的 例如我们的按钮 窗口 标签上的图画图需要两个东西:
画家:
QPainter
画板:中间的那个是编译过程
QPaintDevice(常见的控件 按钮 label 窗口...)
2.绘图
18void Widget::paintEvent(QPaintEvent *event)
19 {
20
21//绘图一定需要在这个函数中绘图
22//画家
23QPainter p(this);//定义一个画家 并且制定了绘图设备
24p.drawPixmap(0,0,this‐>width(),this‐
>height(),QPixmap("../Image/bk.jpg"));
25QPen pen;// 定义一支笔
26pen.setWidth(5);
27pen.setColor(QColor(Qt::red));//设置笔的颜色
28//将笔给到画家
29p.setPen(pen);
30 p.drawLine(50,50,300,300);//画线
31 p.drawEllipse(0,0,this‐>width(),this‐>height());
32 }
1void Widget::paintEvent(QPaintEvent *e)
2 {
3qDebug()<<"in paintEvent"<<"recet"<<e‐>rect(); //得到需要重新绘制的区域
4QPainter paint(this); //定义画家(请了一个画家来画画),画在主窗口上
5//画家画图片,作为背景图片
6paint.drawPixmap(0,0,this‐>width(),this‐>height(),
7QPixmap("../Image/bk.jpg"));
8QPen pen; //定义一只画笔
9pen.setColor(QColor(255,0,255)); //设置画笔的颜色
10pen.setWidth(5); //设置画笔的宽度
11pen.setStyle(Qt::DashDotLine); //设置画笔线条的风格
12paint.setPen(pen); //画家使用这只画笔
13paint.drawLine(30,30,500,30);//画家画水平的线条
14paint.drawLine(30,30,30,500);//画家画垂直的线条
15pen.setColor(Qt::yellow);//设置画笔的颜色
16pen.setStyle(Qt::SolidLine);//设置画笔线条的风格
17pen.setWidth(3);//设置线条的宽度
18paint.setPen(pen);//画家使用这只画笔
19QBrush brush(Qt::blue);//定义一把蓝色的画刷
20brush.setStyle(Qt::DiagCrossPattern);//设置画刷的风格
21paint.setBrush(brush);//画家使用这把画刷
22 paint.drawRect(50,50,150,200);//画家画矩形
23paint.setPen(QPen());
24paint.setBrush(QBrush(QColor(255,187,255),Qt::Dense3Pattern));
25paint.drawEllipse(280,60,180,250);//画家画椭圆
26 }
运行结果:
学习产出:
- 技术笔记 x1
- CSDN 技术博客 1 篇
- 学习的 vlog 视频 x1