有没有办法在具有不同不透明度的Qt应用程序上投影PNG图像? (例如0.0到1.0之间的值,其中0.0是完全不可见的)。
答案 0 :(得分:1)
创建一个位于您要覆盖的所有其他窗口之上的窗口小部件。使用所需的不透明度在paintEvent函数中绘制图像。
Overlay.h
#include <QWidget>
#include <QPixmap>
class Overlay : public QWidget
{
Q_OBJECT
public:
Overlay( QWidget *parent = NULL ) : QWidget( parent ), opacity( 0 )
{
}
void SetPixmap( const Pixmap& p )
{
pixmap = p;
update();
}
void SetOpacity( qreal o )
{
opacity = o;
update();
}
protected:
virtual void paintEvent( QPaintEvent* )
{
QPainter paint( this );
paint.setOpacity( opacity );
paint.drawPixmap( rect(), pixmap );
}
private:
QPixmap pixmap;
qreal opacity;
}
答案 1 :(得分:0)
Image Element是Item Element的子类。 Item Element具有不透明度属性。