业务需求,想要两个字符串比较的时候,不一样的字符标红。查了半天好像没有什么适合的函数,那就自己画吧
MRZLabel::MRZLabel(QWidget *parent):QLabel(parent)
{
}
void MRZLabel::drawText(const QString &s1,const QString &s2)
{
m_str1 = s1;
m_str2 = s2;
update();
}
void MRZLabel::drawText(const QString &s1,const QString &s2,const QString &s3)
{
m_str1 = s1;
m_str2 = s2;
m_str3 = s3;
update();
}
void MRZLabel::set_Font(QFont f)
{
m_font = f;
}
void MRZLabel::paintEvent(QPaintEvent*)
{
QPainter painter(this);
//painter.setRenderHint(QPainter::Antialiasing, true);
painter.setPen(Qt::black);
painter.setFont(m_font);
painter.drawText(this->rect(), m_str1);
//
painter.setPen(Qt::red);
QRect ret1(painter.fontMetrics().width(m_str1),0,this->width(),this->height());
painter.drawText(ret1,m_str2);
painter.setPen(Qt::black);
QRect ret2(painter.fontMetrics().wi