读书人

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

发布时间: 2012-03-26 15:46:55 作者: rapoo

用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实验你的代码的效果图:

读书人网 >QT开发

热点推荐