下面是我写的代码:
- 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实验你的代码的效果图: