Qt中有既可显示图像又可显示文字的widget吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt中有既可显示图像又可显示文字的widget吗相关的知识,希望对你有一定的参考价值。

参考技术A 很多啊,比如:
// 按钮类
QPushButton,QToolButton
// 显示控件类
QLabel (支持html的富文本语言),QTextEdit, QTextBroswer;
// 列表等都可以
QListWidget,QListView,QTreeWidget,QTreeView
或者自定义的控件也可以
以上控件的用法可以查下帮助文档就行了。

如何用QT实现在图片上叠加显示文字

我现在有一张图片,需要在图片上添加一些文字,然后一起保存起来,用QT实现。现已用:QPixmap pix("bg.jpg");QString str("Created by Bupu");...QPainter p;p.drawPixmap(x, y, pix);p.drawText(x2, y2, str);实现了在一个Widget上显示的功能,求把该Widget保存起来的方法;或是其他方法亦可。  

楼主不用在Widget上画了,直接用QImage来画,并直接存储.

QImage image = QPixmap("C:/Users/Administrator/Pictures/1.jpg").toImage();//绝对路径
//以你原来的那张图片来
//构造一个image

QPainter painter(&image); //为这个QImage构造一个QPainter
painter.setCompositionMode(QPainter::CompositionMode_SourceIn);
//设置画刷的组合模式CompositionMode_SourceOut这个模式为目标图像在上。

//改变画笔和字体
QPen pen = painter.pen();
pen.setColor(Qt::red);
QFont font = painter.font();
font.setBold(true);//加粗
font.setPixelSize(50);//改变字体大小

painter.setPen(pen);
painter.setFont(font);

painter.drawText(image.rect(),Qt::AlignCenter,"Hello");
//将Hello写在Image的中心

int n = 100;//这个为图片的压缩度。0/100
image.save("text.png","PNG",n);
//将画好的图片保存起来。
//可以将png改为其他格式
参考技术A 利用QT实现在图片上叠加显示文字的代码参考如下:
QCustLabel::QCustLabel(QWidget *parent):QLabel(parent)


setPixmap(QPixmap(QString::fromUtf8(":/images/square.png"))) ;
text="001";


void QCustLabel::paintEvent(QPaintEvent *event)

QLabel::paintEvent(event) ;
QPainter painter(this) ;
painter.drawText(QPoint(5,25),text);
return ;

以上是关于Qt中有既可显示图像又可显示文字的widget吗的主要内容,如果未能解决你的问题,请参考以下文章

由于 PC 显示设置的更改,Qt Widget 被部分裁剪

QT控件之Qtable Widget

如何在QT的label上显示图像

聊聊Qt中的Widget调色板QPalette

聊聊Qt中的Widget调色板QPalette

QT中table view怎么显示sqlite数据库的内容?