移动端的qt版本人脸流程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "myLabel.h"
 
#include <QPainter>
#include <QDateTime>
 
myLabel::myLabel(QWidget *parent):QLabel(parent)
{
    m_bShow = false;
}
 
void myLabel::setMyPixmap(QPixmap pixmap)
{
    m_pixmap = pixmap;
}
 
void myLabel::setMyText(QString str)
{
    m_strTips = str;
}
 
void myLabel::setMyShow(bool bShow)
{
    m_bShow = bShow;
}
 
void myLabel::setDateTime()
{
    QPainter painter(this);
    QString strDateTime = QDateTime::currentDateTime().toString(Qt::SystemLocaleLongDate);
    QStringList list = strDateTime.split("CST");
    QString strDateTimeOk = list[0];
 
    QFont font = this->font();
    font.setPixelSize(this->height()*0.05);
    painter.setFont(font);
    painter.setPen(QColor(255,255,255,100));//white
    painter.drawText(QPointF(this->width()*0.1, this->height()*0.1), strDateTimeOk);
    painter.drawText(QPointF(this->width()*0.7, this->height()*0.1), list[1]);
}
 
void myLabel::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.drawPixmap(0,0,m_pixmap);
 
    if (m_bShow && m_strTips != "")
    {
        QColor clrRect(128,128,128,15);
        QBrush brh(clrRect);
        painter.setBrush(brh);
        QRect rect(this->width()*0.3,this->height()*0.8,this->width()*0.4,this->height()*0.1);
        QColor white(255,255,255,0);
        painter.setPen(white);
        painter.drawRect(rect);
        QFont font = this->font();
        font.setPixelSize(this->height()*0.05);
        painter.setFont(font);
//        if (m_strTips == "很遗憾,没有找到您!" || m_strTips == "设备未连接" || m_strTips == "请对准摄像头"
//              || m_strTips == "未识别,请确认是您本人")
//        {
//            painter.setPen(QColor(255,0,0));//red
//        }else
//        {
            painter.setPen(QColor(255,255,255,200));//white
//        }
        painter.drawText(rect,Qt::AlignCenter,m_strTips);
    }
 
    setDateTime();
}