gpt4 book ai didi

c++ - QMovie::setScaledSize() 改变标签大小

转载 作者:行者123 更新时间:2023-11-28 02:26:21 25 4
gpt4 key购买 nike

我正在尝试使用 QLabel 播放 gif 动画。gif 动画用于显示加载状态。每次用户进入场景时都应播放动画。

随着进入次数的增加,标签越来越大。我不知道为什么。

这是简化的代码。

.h 文件:

#include <QtGui/QMainWindow>
#include "ui_qmovietest.h"
#include <QMovie>

class QMovieTest : public QMainWindow
{
Q_OBJECT

public:
QMovieTest(QWidget *parent = 0, Qt::WFlags flags = 0);
~QMovieTest();
public slots:
void on_pushButton_clicked();
private:
Ui::QMovieTestClass ui;
QMovie* mMovie;
};

这是 .cpp 文件:

#include "qmovietest.h"
#define PATH ":/QMovieTest/processing.gif"
QMovieTest::QMovieTest(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
mMovie = new QMovie(PATH);
ui.label->setMovie(mMovie);
mMovie->stop();
}

QMovieTest::~QMovieTest()
{

}

void QMovieTest::on_pushButton_clicked()
{
//Pushing a Button represents entering the scene
//Label get larger.
mMovie->setScaledSize(this->size());
mMovie->start();
}

最佳答案

当代码输入“on_pushButton_clicked”时,你调用

mMovie->setScaledSize(this->size());

根据 setScaledSize 的文档

Sets the scaled frame size to size.

我怀疑窗口需要比框架稍大一些。由于“this”是主窗口,通过将框架设置为窗口的大小,窗口将增加以补偿框架大小的增加。每次进入 on_pushButton_clicked 函数时都会发生这种情况。

关于c++ - QMovie::setScaledSize() 改变标签大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30501019/

25 4 0