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 に答える