我想实现这个:
- 具有一定宽度和高度的透明表面(透明小部件)
- 在这个表面上画一些东西,这样屏幕上只可以看到该图形的轮廓,而没有其他东西(我正在绘制的表面的背景不应该在那里)
我制作了一个小部件,并实现了像这样透明的:
window.setAttribute( Qt::WA_TranslucentBackground);
window.setWindowFlags (Qt::FramelessWindowHint);
window.setGeometry( 0,0,1200, 800 );
window.show();
然后我覆盖了函数paintEvent(QPaintEvent *);使用QPainter制作椭圆。
但表面仍然只是黑色。有人可以解释吗?
看起来与我在类似应用程序中所做的相似,但我也做了:
window.setAutoFillBackground(false);
也许这就是你缺少的部分?
编辑:另一个想法:在你的paintEvent
中,在绘制椭圆之前,你是否用完全透明的颜色填充小部件rect()
?