QT開發(二十九)——QT常用類(三)

QT開發(二十九)——QT常用類(三)

一、QImage

1QImage簡介

QT中提供了四個處理圖像數據的類:QImage、QPixmap、QBitmap、QPicture。

QImage提供了允許直接訪問像素數據的硬件無關的圖像顯示方案,能夠用作繪圖設備。

QImage專門爲I/O、直接像素訪問操作而設計,並進行了優化。訪問圖片的像素或是修改圖片像素,則需要使用QImage,或者藉助於QPainter來操作像素。

    由於QImage繼承自QPaintDeviceQPainter可以直接在QImage上繪圖。當在QImage上使用QPainter時,繪製可以在另一個線程中進行,而不是當前的GUI線程。

QImage可通過setPixpel()和pixel()等方法直接存取指定的像素

2QImage乘以函數

QImage::QImage(const QSize & size, Format format)

QImage::QImage(int width, int height, Format format)

QImage::QImage(uchar * data, int width, int height, Format format)

QImage::QImage(const uchar * data, int width, int height, Format format)

QImage::QImage(uchar * data, int width, int height, int bytesPerLine, Format format)

QImage::QImage(const uchar * data, int width, int height, int bytesPerLine, Format format)

QImage::QImage(const char * const[] xpm)

QImage::QImage(const QString & fileName, const char * format = 0)

QImage::QImage(const char * fileName, const char * format = 0)

QImage::QImage(const QImage & image)

構造函數

uchar * QImage::bits ()

const uchar * QImage::bits () const

返回指向第一個像素數據的指針

int QImage::byteCount () const

返回圖像數據佔據的字節數

QImage QImage::copy ( const QRect & rectangle = QRect() ) const

拷貝圖像中的某個區域作爲新的圖像

QImage QImage::copy ( int x, int y, int width, int height ) const

拷貝(x,y)點開始(width,heith)的矩形區域作爲新的圖像

QRgb QImage::pixel ( const QPoint & position ) const

QRgb QImage::pixel ( int x, int y ) const

返回某點的像素的顏色

QSize QImage::size () const

    返回圖像的尺寸大小

int QImage::width () const

    返回圖像的寬

int QImage::height () const

    返回圖像的高

QImage QImage::fromData(const uchar * data, int size, const char * format = 0) [static]

    將給定的二進制數據data的前size字節數據按指定的圖像格式format構造圖像

QImage QImage::fromData(const QByteArray & data, const char * format = 0) [static]

    從給定的數據data中加載圖像

bool QImage::loadFromData(const uchar * data, int len, const char * format = 0)

bool QImage::loadFromData(const QByteArray & data, const char * format = 0) 

    從給定數據data中加載圖像

QImage::operator QVariant() const

    返回變體類型的圖像

 

二、QPixmap

1QPixmap簡介

QPixmap是用於繪製設備的屏幕圖像顯示。

QPixmap使用標籤或按鈕可以很容易在屏幕顯示。

    QPixmap跟硬件是相關的,如X11, Mac 以及Symbian平臺上,QPixmap是存儲在服務器端,而QImage則是存儲在客戶端,在Windows平臺上,QPixmap和QImage都是存儲在客戶端,並不使用任何的GDI資源。

2QPixmap成員函數

QPixmap::QPixmap ()

QPixmap::QPixmap ( int width, int height )

QPixmap::QPixmap ( const QString & fileName, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )

QPixmap::QPixmap ( const char * const[] xpm )

QPixmap::QPixmap ( const QPixmap & pixmap )

QPixmap::QPixmap ( const QSize & size )

構造函數

int QPixmap::depth () const

返回圖像的深度

bool QPixmap::load ( const QString & fileName, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )

加載fileName圖像

bool QPixmap::loadFromData ( const uchar * data, uint len, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )

bool QPixmap::loadFromData ( const QByteArray & data, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor )

從給定的二進制數據加載圖像

三、QBitmap

1QBitmap簡介

QBitmap是繼承自QPixmap的一個輔助類,確保圖像深度爲1,提供單色圖像。

2QBitmap成員函數

QBitmap::QBitmap(const QString &fileName, const char *format = Q_NULLPTR)

使用指定文件fileName構建QBitmap對象

[static] QBitmap QBitmap::fromData(const QSize &size, const uchar *bits, QImage::Format monoFormat = QImage::Format_MonoLSB)

    構建大小爲size,內容爲bitsQBitmap對象

[static] QBitmap QBitmap::fromImage(const QImage &image, Qt::ImageConversionFlags flags = Qt::AutoColor)

    將image轉換爲QBitmap對象後返回QBitmap對象副本

3QBitmap實例

QPainterpainter(this);
QPixmappixmap("Cat.png");
QBitmapbitmap("Cat.png");
painter.drawPixmap(10,10,128,128,pixmap);
painter.drawPixmap(140,10,128,128,bitmap);
QPixmappixmap2("Cat2.png");
QBitmapbitmap2("Cat2.png");
painter.drawPixmap(10,140,128,128,pixmap2);
painter.drawPixmap(140,140,128,128,bitmap2);

wKioL1hFcX7zvDvQAADww4eLTwM293.png

四、QPicture

1QPicture簡介

QPicture是記錄和重現QPainter命令的繪圖設備。

QPicture picture;

picture.load("drawing.pic");           // load picture

QPainter painter;

painter.begin(&myImage);               // paint in myImage

painter.drawPicture(0, 0, picture);    // draw the picture at (0,0)

painter.end();                         // painting done

2、QPicture成員函數

QPicture::QPicture(int formatVersion = -1)

QPicture::QPicture(const QPicture &pic)

    構造函數

QRect QPicture::boundingRect() const

    返回圖像的邊界矩形

const char *QPicture::data() const

    返回指向圖像數據的指針

bool QPicture::load(const QString &fileName, const char *format = Q_NULLPTR)

    加載指定文件fileName爲圖像,成功返回true

bool QPicture::load(QIODevice *dev, const char *format = Q_NULLPTR)

bool QPicture::play(QPainter *painter)

    使用painter重繪圖像,成功返回true

bool QPicture::save(QIODevice *dev, const char *format = Q_NULLPTR)

bool QPicture::save(const QString &fileName, const char *format = Q_NULLPTR)

    保存圖像

void QPicture::setBoundingRect(const QRect &r)

    設置圖像的邊界矩形爲r

[virtual] void QPicture::setData(const char *data, uint size)

    設置圖像的數據爲data,大小爲size

uint QPicture::size() const

    返回圖像的大小

五、QLibrary

1QLibrary簡介

QLibrary用於加載運行時共享庫。

2QLibrary成員函數

QLibrary主要成員函數如下:

QLibrary::QLibrary ( QObject * parent = 0 )

QLibrary::QLibrary ( const QString & fileName, QObject * parent = 0 )

QLibrary::QLibrary ( const QString & fileName, int verNum, QObject * parent = 0 )

QLibrary::QLibrary ( const QString & fileName, const QString & version, QObject * parent = 0 )

    構造函數

QString QLibrary::errorString () const

    返回最近發生的錯誤描述的文本字符串

bool QLibrary::isLibrary ( const QString & fileName ) [static]

如果文件fileName有加載庫文件的有效後綴,返回true

bool QLibrary::isLoaded () const

如果庫文件已經被加載,返回true

bool QLibrary::load ()

加載庫,成功返回true

void * QLibrary::resolve ( const char * symbol )

void * QLibrary::resolve(const QString & fileName, const char * symbol) [static]

void * QLibrary::resolve ( const QString & fileName, int verNum, const char * symbol ) [static]

void * QLibrary::resolve ( const QString & fileName, const QString & version, const char * symbol ) [static]

返回庫中被導出符號表的地址

void QLibrary::setFileNameAndVersion ( const QString & fileName, int versionNumber )

void QLibrary::setFileNameAndVersion ( const QString & fileName, const QString & version )

設置文件名和版本號

bool QLibrary::unload ()

卸載庫

六、QMovie

1QMovie簡介

    QMovie是使用QImageReader播放動畫的輔助類,用於顯示簡單的無聲音動畫。如果要播放音頻和多媒體內容,請使用Phonon框架。

QMovie使用方法如下:

A、通過構造函數創建一個QMovie對象。

B、調用start()函數啓動動畫播放,QMovie對象將會進入運行態,發送started()和statechanged()信號。

使用實例如下:

QLabel label;

QMovie *movie = new QMovie("animations/fire.gif");

 

label.setMovie(movie);

movie->start();

2QMovie成員函數

QMovie主要成員函數如下:

QMovie::QMovie ( QObject * parent = 0 )

QMovie::QMovie ( QIODevice * device, const QByteArray & format = QByteArray(), QObject * parent = 0 )

QMovie::QMovie ( const QString & fileName, const QByteArray & format = QByteArray(), QObject * parent = 0 )

構造函數

QColor QMovie::backgroundColor () const

返回動畫背景色顏色

int QMovie::currentFrameNumber () const

返回當前幀的序列號,第一幀序列號爲0

QImage QMovie::currentImage () const

返回當前幀的圖像

QPixmap QMovie::currentPixmap () const

返回當前幀的位圖

QIODevice * QMovie::device () const

返回動畫讀取圖像數據的設備

QString QMovie::fileName () const

返回動畫讀取圖像數據的文件的名稱

void QMovie::finished () [signal]

信號,動畫播放完成時發射

void QMovie::updated ( const QRect & rect ) [signal]

信號,當前幀的rect區域更新時發射

QList<QByteArray> QMovie::supportedFormats () [static]

返回QMovie支持的圖像格式鏈表

void QMovie::stop () [slot]

停止動畫,動畫進入非運行態,停止發射updated()和resize()信號

void QMovie::stateChanged ( QMovie::MovieState state ) [signal]

信號,每次動畫的狀態改變時發射

MovieState QMovie::state () const

返回動畫當前狀態

void QMovie::started () [signal]

    信號,QMovie::start()函數調用後發射,動畫進入運行態

void QMovie::start () [slot]

    啓動動畫播放

void QMovie::setScaledSize ( const QSize & size )

    設置縮放幀大小到size

void QMovie::setPaused ( bool paused ) [slot]

設置動畫暫停

void QMovie::setFormat ( const QByteArray & format )

設置動畫解碼圖像數據的格式

void QMovie::setFileName ( const QString & fileName )

設置動畫讀取圖像數據的文件的文件名

void QMovie::setDevice ( QIODevice * device )

設置動畫播放時讀取圖像數據的設備

void QMovie::setBackgroundColor ( const QColor & color )

設置動畫背景色

int QMovie::frameCount () const

返回動畫的幀數

七、QPalette調色板

1QPalette簡介

QPalette類包含了組件狀態的顏色組,QPalette是存儲組件顏色信息的數據結構,組件外觀所使用的顏色都定義於QPalette調色板中。

QPalette類對象包含了三個狀態的顏色描述,分別如下:

A、激活顏色組(Active)

組件獲得焦點使用的顏色搭配方案

B、非激活顏色組(Inactive)

組件失去焦點使用的顏色方案

C、失效顏色組(Disabled)

組件處於不可用狀態使用的顏色方案

QPalette調色板的使用

2、QPalette成員函數

QPalette::QPalette()

QPalette::QPalette(const QColor &button)

QPalette::QPalette(Qt::GlobalColor button)

QPalette::QPalette(const QColor &button, const QColor &window)

QPalette::QPalette(const QPalette &p)

    構造函數

void QPalette::setBrush(ColorRole role, const QBrush &brush)

    設置指定的顏色rolebrush

void QPalette::setBrush(ColorGroup group, ColorRole role, const QBrush &brush)

    設置指定顏色組group中的顏色rolebrush

void QPalette::setColor(ColorGroup group, ColorRole role, const QColor &color)

    設置顏色組group中的顏色rolecolor

void QPalette::setColor(ColorRole role, const QColor &color)

    設置顏色rolecolor

const QBrush &QPalette::shadow() const

    返回當前顏色組的影子brush

const QBrush &QPalette::text() const

    返回當前顏色組的文本前景色brush

const QBrush &QPalette::window() const

    返回當前顏色組的窗口背景brush

const QBrush &QPalette::windowText() const

    返回當前顏色組的窗體文本前景色的brush

 

3QPalette實例

QPalette p = m_button.palette();

 

    p.setColor(QPalette::Active, QPalette::ButtonText, Qt::red);

    p.setColor(QPalette::Inactive, QPalette::ButtonText, Qt::red);

 

    m_button.setPalette(p);

 

    p = m_edit.palette();

 

    p.setColor(QPalette::Inactive, QPalette::Highlight, Qt::blue);

    p.setColor(QPalette::Inactive, QPalette::HighlightedText, Qt::white);

 

    m_edit.setPalette(p);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章