예제 #1
0
void GLabel::setGifPixmap(QString paramstr)
{
    int max_width = parent_maxwidth - 50;
    int all_word_width;

    qDebug() << paramstr;

    label_text->setWordWrap(false);
    label_text->adjustSize();

    all_word_width = label_text->width();
    label_text->setWordWrap(true);

    if (all_word_width > max_width) {
        qDebug() << parent_maxwidth;

        label_text->setMaximumWidth(max_width - 20 - 30);


        QMovie *movie = new QMovie(paramstr);
        if (movie->scaledSize().width() > 30) {
            movie->setScaledSize(QSize(30, 30));
        }
        label_text->setMovie(movie);
        movie->start();


        label_text->setTextInteractionFlags(Qt::TextSelectableByMouse);//设置文本内容可选
        label_text->adjustSize();

//        m_height = label_text->width() * 1.0 / 300 * label_text->height();
        m_height = label_text->height();
        m_width  = parent_maxwidth - 15;
        this->resize(m_width, m_height + 40);

    } else {
        label_text->setWordWrap(false);
        m_height = 66;

        QMovie *movie = new QMovie(paramstr);
        qDebug() << movie->scaledSize().height();
        if (movie->scaledSize().width() > 30) {
            movie->setScaledSize(QSize(30, 30));
        }
        label_text->setMovie(movie);
        movie->start();

        label_text->setTextInteractionFlags(Qt::TextSelectableByMouse);//设置文本内容可选
        label_text->adjustSize();

        m_width = label_text->width() + 40 + 30;
        this->resize(m_width + 10, m_height);

//        label_text->setMaximumWidth(100);
//        this->setMaximumWidth(100);
    }

    if (people == GLabel::She) {
        label_text->setGeometry(20 + 40, 20, this->width() - 40 - 30, this->height()-40);
    } else {
        label_text->setGeometry(20, 20, this->width() - 40 - 30, this->height() - 40);
    }
    update();
}