2012-04-02 3 views
0

こんにちはすべてQMainWindowにloader.gifファイルを入れたいと思います。 真ん中に黒い背景とこのQMovieアイテムがあります。QMainWindowの中にGIFを入れるには

ここは私のコードであり、何もしていません。

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 
} 
+0

qrcファイルはありますか? – UmNyobe

答えて

0

を設定didntのムービーを表示するには、メインウィンドウのprocessLabel->show()を呼び出す必要があります見ての通り。 gifがループされている場合、無限に繰り返されます。さもなければそれはちょうど一度遊ぶ。

あなたはUi :: MainWindowを継承しているので、Qt Designerを使用してウィンドウをレイアウトしていると仮定します。 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(); 
} 

、あなたのQLabelを表示する前に、あなたを確認してください。

  1. あなたのメインウィンドウを表示します。
  2. GIFは、あなたが最後に、QLabel::show()を呼び出すQLabel::setScaledContents(true)
  3. を呼び出すことを確認したラベルよりも大きい場合
  4. QLabel::setGeometry(x,y,width,height)を呼び出す)ジオメトリを設定します。
+0

あなたのコード行を置いても何も起こりません。私はそれをループか何かに入れておくべきですか?私は画面上に何も表示されません –

+0

さらに、 'processLabel-> setGeometry()'を使って、表示する前にラベルジオメトリを設定する必要があります。 – buster

0

私はそれはあなたがレイアウトにラベルを入れていませんでして、あなたには、いくつかの時点で、レイアウト

関連する問題