在透明 qt 小部件上画一条线



我想实现这个:

  1. 具有一定宽度和高度的透明表面(透明小部件)
  2. 在这个表面上画一些东西,这样屏幕上只可以看到该图形的轮廓,而没有其他东西(我正在绘制的表面的背景不应该在那里)

我制作了一个小部件,并实现了像这样透明的:

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()

最新更新