QGraphicsEffect給圖像元素添加模糊Blur,陰影DropShadow,着色Colorize,透明QPacity等效果。函數
QGraphicsEffect是全部效果類的父類。鏈接原圖和最後輸出圖像的設置[好比QGraphicsView的視口]之間的渲染通道,而後實現效果。code
效果是Item的,不是Scene的blog
一、QGraphicsBlurEffect:模糊繼承
QPixmap pixmap(":/resources/lena.png"); QGraphicsPixmapItem *bg = m_scene.addPixmap(pixmap); //將圖像畫在m_scene上面 m_effect = new QGraphicsBlurEffect; //能夠模糊圖像圖形的渲染區域。模糊效果在產生焦點失調效果時很是有用 m_effect->setBlurRadius(10); //設置模糊半徑,默認模糊半徑爲5像素。越大越看不清楚 // m_effect->setEnabled(false); //效果開關,若是false就不起做用;默認是true bg->setGraphicsEffect(m_effect); //是QGraphicsItem的成員函數而不是scene的成員函數,將效果直接添加到條目上
二、QGraphicsColorizeEffect:顏色渲染ci
setScene(&m_scene); //當前QWidget窗口時繼承QGraphicsView的 QPixmap pixmap(":/resources/lena.png"); QGraphicsPixmapItem *bg = m_scene.addPixmap(pixmap); //將圖像畫在m_scene上面 m_effect = new QGraphicsColorizeEffect; m_effect->setColor(QColor(0, 192, 192)); m_effect->setStrength(0.5); //0.0表示無效果,1.0表示徹底着色,默認1.0 m_effect->setEnabled(true); bg->setGraphicsEffect(m_effect);
三、QGraphicsOpacityEffect設置透明度get
setScene(&m_scene); //當前QWidget窗口時繼承QGraphicsView的 QPixmap pixmap(":/resources/lena.png"); QGraphicsPixmapItem *bg = m_scene.addPixmap(pixmap); //將圖像畫在m_scene上面 m_effect = new QGraphicsOpacityEffect; m_effect->setOpacity(0.1); // 0.0表示徹底透明[沒有了],1.0表示徹底不透明,默認0.7 m_effect->setEnabled(true); bg->setGraphicsEffect(m_effect);
四、QGraphicsDropShadowEffect。。。。。等待完善it