QT中的透明小部件

时间:2012-08-24 14:39:10

标签: c++ qt widget qwidget

我想在小部件上绘制一个圆圈,并且在圆形背景屏幕内应该是可见的,即在小部件上应该可以看到圆的边界/圆周。 其余的小部件应该是透明的。 我试过了 : 1)setStyleSheet("background:transparent;") 2)setAttribute( Qt::WA_TranslucentBackground, true ); 3)Overriding paintEvent(QPaintEvent* event);

上述所有方法都不起作用。和setAutoFillBackground()为false。 我是刚刚在谷歌上找到的Qt及以上解决方案的新手。 请帮助。

2 个答案:

答案 0 :(得分:0)

这将完成工作:D

#include <QApplication>
#include <QtGui/QMainWindow>
#include <QtGui/QPushButton>
#include <QtGui/QHBoxLayout>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QMainWindow *win=new QMainWindow(0);
    win->setAttribute(Qt::WA_TranslucentBackground,true);
    win->show();
    return a.exec();
}

答案 1 :(得分:0)

如果在窗口上使用QWidget::setMask函数,则会产生这种影响。另请参阅shaped clock example(也参考setMask文档)。