1

我想实现这一点:

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

我制作了一个小部件并实现了使其透明,如下所示:

window.setAttribute( Qt::WA_TranslucentBackground);
window.setWindowFlags (Qt::FramelessWindowHint);
window.setGeometry( 0,0,1200, 800 );
window.show();

然后我覆盖了函数paintEvent(QPaintEvent *); 使用 QPainter 制作椭圆。

但表面仍然只是黑色。有人可以解释吗?

4

1 回答 1

1

看起来与我在类似应用程序中所做的相似,但我也做了:

window.setAutoFillBackground(false);

也许这就是你所缺少的?

编辑:另一个想法:在您的中,您是否在绘制椭圆之前用完全透明的颜色paintEvent填充小部件?rect()

于 2012-09-24T12:11:14.633 回答