QT中的透明窗口小部件

问题描述:

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

上述所有梅索德没有工作。和setAutoFillBackground()为false。 我刚刚在Google上找到了Qt和以上解决方案。 请帮助。

+0

我读过一些地方,这个功能只适用于支持Windows通道绘制的系统! –

QWidget::setMask功能,如果窗子上时,会产生影响。另请参阅shaped clock example(也参考setMask文档)。

+0

setMask()工作。谢谢大家。 不错的例子。 – user746184

这将做的工作: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(); 
}