QT表示画像


QTは写真を表示する方法がたくさんあります.
大体
labelに表示する
直接に描き出す
コンテナの表示
1-------gif画像を表示する(labelに表示する)
http://archive.cnblogs.com/a/2053701/
QTにGIF画像を表示するには、単に部品を追加してはいけません.
手動でプログラムを作成する必要があります.
ツール:QT Creator
新しいプロジェクトを作って、まずdesignerにQLabel部品を追加します.
次の図のように
QLabelを適当な大きさにします.
クラスcpp関数に以下のプログラムを追加します.
 
   
#include " widget.h "
#include
" ui_widget.h "
#include
< QLabel >
#include
< QMovie >

Widget::Widget(QWidget
* parent) :
QWidget(parent),
ui(
new Ui::Widget)
{
ui
-> setupUi( this );
QMovie
* movie = new QMovie( " D:/Project/Qt/testclass/2.gif " );
ui
-> label -> setMovie(movie);
movie
-> start();
}

Widget::
~ Widget()
{
delete ui;
}


如下图:



这里要注意QMovie中的路径名:"D:/Project/Qt/testclass/2.gif" 这里的路径斜杠和WINDOWS下是相反的.WINDOWS下默认是反斜杠.

编译,运行就没有问题,就会看到GIF文件在播放了.

如下图:



当文档GIF图片显示:

 
   
#include < QtGui / QApplication >
#include
< QLabel >
#include
< QMovie >

int main( int argc, char * argv[])
{
QApplication app(argc,argv);

QLabel
* label = new QLabel();
QMovie
* movie = new QMovie( " D:/Project/Qt/firstQT/2.gif " );
label
-> setMovie(movie);
movie
-> start();
label
-> show();

return app.exec();
}

2-------------------------label上显示图片------------------


把你的label.png放到工程目录顶层,直接
QPixmap pixmap("label.png");


 ui->title_label->setPixmap(pixmap);


ui->title_label->show();


---

可以直接:
label->setPixmap(QPixmap("./pic.jpg"));  

或者:
QImage *image= new QImage("./pic.jpg");  
label->setPixmap(QPixmap::fromImage(image));

再或者在中途换某个图像的话:
 QImage *image= new QImage("./pic1.jpg");  
label->setPixmap(QPixmap::fromImage(image));
...........
image->load("./pic2.jpg");  


3----------直接画出图片-------------------------

void logindlg::paintEvent(QPaintEvent*)

{
    QPainter painter(this);
    QPixmap  pix;
    pix.load("D:/QT/login/login/images/delta.png");
    painter.drawPixmap(0,0,100,33,pix);
//    painter.drawLine(0,0,100,100);
}
4-----------プログラム起動時のイメージ
Qiplicationアプリ(argc、 argv;     QSplashScreen *splash = new QSplashScreen     splash->set Pixmap(QPixmap(「//imags/splash.png」)画像の設定     splash->show()///画像を表示     Qt::Alignment topRight = Qt:AlignRight | Qt::Align Top;     splash->show Message(QObject:tr(「Setting up the main window...」)、topRight、 Qt::white)//メッセージを表示     MainWindow manWin;     splash->show Message(QObject:tr(Loading modules)、                         topRight Qt::white); //メッセージを表示     loadModules();     splash->show Message(QObject:tr(「Establishing connect...」)、                         topRight Qt::white); //メッセージを表示     エスタblish Connection()     main Win.show()     splash->finish(&main Win)/.画像はずっとmanWinロード完了まで表示されます.    delete splash;メモリを節約する    return app.exec()
来た:  http://hi.baidu.com/sdink/blog/item/879e7013027a7fcaa7ef3f83.html
まず、透明な画像を表示するために、jpgフォーマットをロードしなければなりません.
また、パーツによって画像をロードする方法も違っています.例えば、
QLabelロード画像:
C/C++コード
    QString strePath=イメージPath.value(day); //画像のパス
    QPixmap pix(strePath)
    day Label->set Pixmap(pix);
QPusshButtonロード画像:
C/C++コード
  button->set Icon(QIcon); 
   button->setIconSize(QSize(48,48);
ここで、setsIconSize関数は、画像を切り取るための表示領域であり、この関数がない場合は、画像はズームされて画像に載せられます.
画像をパレットで読み込み:
C/C++コード
      QPalette p=palette() 
       p.set Brush(QPalette::Button,QBrush(QPixmap); 
       set Palette(p)
またボタンの透過性を実現します.
C/C++コード
    button->set Flat(true);
また、イベント関数を描画します.
C/C++コード
    QPixmap arrayImage(「/home/image/array.png」);画像のパス
    QRect arrayRect(0,0,50,50)//画像領域の切り取り
    QPainter painter;
    painter.drawPixmap(QPoint(100,100)、arrayImage、arrayRect);画像を印刷