C++ 如何在QMainWindow中放置GIF
嗨,我想把loader.gif文件放到我的qmain窗口中。 我想要黑色背景和中间的qQuin项。< /P> 这是我的代码,它什么都没做C++ 如何在QMainWindow中放置GIF,c++,qt,animated-gif,C++,Qt,Animated Gif,嗨,我想把loader.gif文件放到我的qmain窗口中。 我想要黑色背景和中间的qQuin项。< /P> 这是我的代码,它什么都没做 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { QMovie *movie = new QMovie(":/slike/Loading_Animations.gif"); QLabel *processLabe
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), ui(new Ui::MainWindow)
{
QMovie *movie = new QMovie(":/slike/Loading_Animations.gif");
QLabel *processLabel = new QLabel(this);
processLabel->setMovie(movie);
movie->start()
//how to assign this to my UI
}
在我看来,您没有将标签放在布局中,也没有设置布局在某个时候,您需要调用
processLabel->show()
,以便主窗口显示电影。如果gif循环,它将无限重复。否则它只会播放一次
由于您继承的是Ui::MainWindow,所以我假设您使用的是Qt设计器来布局窗口。在Qt Designer中向用户界面添加processLabel可能对您有利。您可以以图形方式设置样式表(添加黑色背景),然后在添加电影之前只需调用ui->setupUi(this)
。以下是一些适用于我的示例代码:
#include <QMovie>
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
//calling setupUi creates processLabel and positions it and shows it correctly
QMovie *movie = new QMovie(":/slike/Loading_Animations.gif");
processLabel->setMovie(movie);
movie->start();
//if you haven't already called show for your main window call it
this->show();
}
#包括
MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(新ui::MainWindow)
{
用户界面->设置用户界面(此);
//调用setupUi将创建processLabel并将其定位并正确显示
QMovie*movie=newqmovie(:/slike/Loading_Animations.gif”);
processLabel->setMovie(电影);
电影->开始();
//如果您还没有为主窗口调用show,请调用它
此->显示();
}
否则,在显示QLabel
之前,请确保:
QLabel::setGeometry(x、y、宽度、高度)
)QLabel::setScaledContents(true)
QLabel::show()
您忘了在调用函数
start()
后添加分号(;
),即使我放入您的代码行,也不会发生任何事情。我应该把它放在一个环里还是什么的?我在屏幕上看不到任何内容。此外,您可能需要在调用显示之前设置标签几何图形,方法是:processLabel->setGeometry()
。