QT中的透明窗口小部件
问题描述:
我想在窗口小部件上绘制一个圆圈,并且在圆圈背景屏幕内应该是可见的,即圆形的边框/圆周应该在窗口小部件上可见。 其余部件应该是透明的。 我曾尝试: 1)setStyleSheet("background:transparent;")
2)setAttribute(Qt::WA_TranslucentBackground, true);
3)Overriding paintEvent(QPaintEvent* event);
QT中的透明窗口小部件
上述所有梅索德没有工作。和setAutoFillBackground()为false。 我刚刚在Google上找到了Qt和以上解决方案。 请帮助。
答
的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();
}
我读过一些地方,这个功能只适用于支持Windows通道绘制的系统! –