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

时间:2012-09-24 11:20:43

标签: qt qpainter

我想实现这个目标:

  1. 具有一定宽度和高度的透明表面(透明小部件)
  2. 在这个表面上绘制一些东西,这样在屏幕上只能看到那个图形的轮廓而没有别的东西(我绘制的表面背景不应该在那里)
  3. 我创建了一个小部件并实现了透明化:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

window.setAutoFillBackground(false);

也许这是你缺少的一块?

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