QT 圖片導入測試
今天在家里做了一下導入圖片到GUI里面的測試。開始用一個QLable setPixmap來做。但是就是沒有辦法成功,也不知這個方法是否可以用來加載圖片。但是我是沒有實現的。
最后自己定義了一個QWidget子類,在里面繼承了QWidget的 paintEvent事件。
這樣就可以用這個組件時就可以顯示圖片。后面又對里面的圖片尺寸設置為該組件的大小。這樣對調整界面時就會出現的圖片里面是隨著大小而在改變。
代碼: Picture.h
#ifndef PICTURE_H_
#define PICTURE_H_

#include <QWidget>

class QPaintEvent;
class QPixmap;
class Picture:public QWidget
{
public:
Picture(const QString &f,QWidget *parent=0);
protected:
void paintEvent(QPaintEvent *event);
private:
//QString filename;
QPixmap *image;
};

#endif /*PICTURE_H_*/
Picture.cpp
#include <QtGui>
#include "Picture.h"
#include <iostream>
Picture::Picture(const QString &f,QWidget *parent)
:QWidget(parent)
{
image=new QPixmap(f);
QSize size=image->size();
setMinimumHeight(50); //該句是加上后對該組件顯示出來里面的圖片,不然就顯示不了。
}

void Picture::paintEvent(QPaintEvent *event){
QPainter print(this);
QSize size=this->size();
QPixmap img;
img=image->scaled(size.width(),size.height(),Qt::IgnoreAspectRatio);
print.drawPixmap(0,0,img);

}
最后自己定義了一個QWidget子類,在里面繼承了QWidget的 paintEvent事件。
這樣就可以用這個組件時就可以顯示圖片。后面又對里面的圖片尺寸設置為該組件的大小。這樣對調整界面時就會出現的圖片里面是隨著大小而在改變。
代碼: Picture.h
#ifndef PICTURE_H_
#define PICTURE_H_
#include <QWidget>
class QPaintEvent;
class QPixmap;
class Picture:public QWidget
{
public:
Picture(const QString &f,QWidget *parent=0);
protected:
void paintEvent(QPaintEvent *event);
private:
//QString filename;
QPixmap *image;
};
#endif /*PICTURE_H_*/
Picture.cpp
#include <QtGui>
#include "Picture.h"
#include <iostream>
Picture::Picture(const QString &f,QWidget *parent)
:QWidget(parent)
{
image=new QPixmap(f);
QSize size=image->size();
setMinimumHeight(50); //該句是加上后對該組件顯示出來里面的圖片,不然就顯示不了。
}
void Picture::paintEvent(QPaintEvent *event){
QPainter print(this);
QSize size=this->size();
QPixmap img;
img=image->scaled(size.width(),size.height(),Qt::IgnoreAspectRatio);
print.drawPixmap(0,0,img);
}
posted on 2007-08-12 21:05 lancey 閱讀(1381) 評論(0) 編輯 收藏 引用 所屬分類: qt

