如何绘制文字
字体的设置:
使用构造函数
QFont::font(const QString &family, int pointSize = -1 ,int weight = -1, bool italic = false);
可以看到,family是一个字符串常量,而这个family表示的是字体家族,有哪些字体可以在电脑上查看。查看方法为:设置→个性化→字体。
pointSize指的是字体大小,weight指的是加粗,itlatic指的是是否为斜体。
字体还可以设置下划线:
font.setUnderline(true);//也可以设置其他线
接下来将画笔设置为当前字体:
painter.setFont(font);
painter.setPen(Qt::blue);//设置颜色为蓝色
具体如下:
void Widget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QFont font("Agency FB",50,QFont::Bold,true);
painter.setFont(font);
painter.drawText(100,100,"Hello World");
}
如何绘制路径
这里的路径并不是指电脑中某一个文件的路径,而是指我们绘制出来的某一个图像的路径,因为有些时候,我们可能会频繁的使用这个图像。
使用QPainterPath方法,相当于创造一个容器,容器里面是我们先前已经创造好的内容(由一些直线和圆形等其他图片组成将这些内容转化为一个对象),所以只要用容器里的东西。
如下,相当于创造一个路径path
QPainterPath path;
path.moveTo(50,50);
path.lineTo(150,100);
path.addEllipse(QPoint(150,100),50,50);
接下来绘制出来,用两种颜色:
void Widget::paintEvent(QPaintEvent *)
{
QPainterPath path;
path.moveTo(50,50);
path.lineTo(150,100);
path.addEllipse(QPoint(150,100),50,50);
QPainter painter(this);
painter.drawPath(path);
path.translate(100,0);//平移创建的path以作对比
painter.setPen(Qt::blue);
painter.drawPath(path);
}