QT 中QPainter绘制文字、图片
1. 把字符串繪制在QPixmap上
QPixmap MainWindow::text2Pixmap(QString text)
{
QFontMetrics fmt(m_font);
QPixmap result(fmt.width(text), fmt.height());
QRect rect(0,0,fmt.width(text), fmt.height());
result.fill(Qt::transparent);
QPainter painter(&result);
painter.setFont(m_font);
painter.setPen(QColor(255,143,36));
//painter.drawText(const QRectF(fmt.width(text), fmt.height()),Qt::AlignLeft, text);
painter.drawText((const QRectF)(rect),text);
return result;
}
2. 對(duì)圖片進(jìn)行水平拼接
//多張圖片拼接合成一張圖片
QPixmap MainWindow::pinjie(QVector<QPixmap> image)
{
int image_width=0;
int max_height = 0;
QVector <QPixmap > ::iterator it;
for(it = image.begin();it!=image.end();++it)
{
int width = (*it).width();
image_width += width;
image_width +=5;
if((*it).height()>max_height)
{
max_height =(*it).height();
}
}
QPixmap result_image_h(image_width,max_height);
result_image_h.fill(Qt::transparent);
QPainter painter_h;
painter_h.begin(&result_image_h);
int x_number=0;
for(it = image.begin();it!=image.end();++it)
{
painter_h.drawPixmap(x_number,0,(*it));
x_number += (*it).width();
x_number +=5;
}
painter_h.end();
return result_image_h;
}
3. 把一張圖片繪制在空白圖片上
QPixmap MainWindow::zoomOutPix(QPixmap pix ,int addWidth, int addHeight)
{
// addWidth pix增加的寬度,addHeight pix增加的高度
QPixmap res(pix.width() + addWidth, pix.height() + addHeight);
res.fill(Qt::transparent);
QPainter painter(&res);
painter.drawPixmap(addWidth/2, addHeight/2, pix.width(), pix.height(), pix);
return res;
}
4. 把一張圖片繪制在另外一張圖片上
//一張圖片繪制在另外一張圖片上
QPixmap MainWindow::dijia(QPixmap p1, QPixmap p2)
{
//p1作為底片, p2繪制在p1圖片上
QPainter painter(&p1);
painter.drawPixmap(0,0,p2.width(),p2.height(), p2);
return p1;
}
5. 圖片的縮放
使用scaled函數(shù)進(jìn)行圖片的縮放。
//縮放
QString str = QString::fromLocal8Bit("(侏羅紀(jì))");
QPixmap p = text2Pixmap(str);
p = p.scaled(100, 30, Qt::KeepAspectRatio, Qt::SmoothTransformation);
6. Qt快捷鍵
添加注釋: Ctrl + /? ? ? ?
代碼格式快速對(duì)齊:Ctrl? + A ,Ctrl + I
總結(jié)
以上是生活随笔為你收集整理的QT 中QPainter绘制文字、图片的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开大你的音响,感受HTML5 Audio
- 下一篇: 得当前时间的工具类