当前位置: 代码迷 >> QT开发 >> 用QPainter画一张背景透明的图解决办法
  详细解决方案

用QPainter画一张背景透明的图解决办法

热度:91   发布时间:2016-04-25 04:58:09.0
用QPainter画一张背景透明的图
下面是我写的代码:
C/C++ code
#include <QtGui>    class Widget : public QWidget    {        Q_OBJECT    public:        Widget(QWidget *parent = 0);    protected:          void paintEvent(QPaintEvent *event);      private:        QPoint m_CurrentPos;        QPixmap m_Pixmap;    };    Widget::Widget(QWidget *parent)    : QWidget(parent, Qt::FramelessWindowHint)    {    m_Pixmap = QPixmap(200, 200);    resize(200, 200);    QPainter painter(&m_Pixmap);    painter.setPen(Qt::red);    painter.drawRect(50, 50, 100, 100);    setMask(m_Pixmap);}    void Widget::paintEvent(QPaintEvent *event)    {        QPainter painter(this);        painter.drawPixmap(0, 0, m_Pixmap);    }    #include "main.moc"    int main(int argc, char *argv[])    {        QApplication app(argc, argv);        Widget *widget = new Widget;        widget->show();        return app.exec();    }    


这段代码的本来是想生成一个只有一个红色边框的Widget,并且除了边框以外,其他区域都设置为穿透效果,
但为什么界面上还有这么多灰色的花点呢?

截图如下:


请大家多多指教,先谢谢啦。

------解决方案--------------------
由于 小豪 的隐私设置,你不能访问当前内容

------解决方案--------------------
你所指的灰色花点是红色边框外的背景部分,还是红色边框上的花点?
我在UBuntu实验你的代码的效果图:
  相关解决方案