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(); }