0

Qt で半透明のウィンドウを作成したい:

setWindowFlags(Qt::Popup| Qt::FramelessWindowHint);
setAttribute(Qt::WA_TranslucentBackground,true);

しかし、 を に設定するQt::WA_TranslucentBackgroundtrue、各ウィジェットの四隅に白いものが表示されます。

マウスがウィジェット上をホバーするか、ウィジェットをクリックするたびに表示されます。これを回避するには?を に設定するQt::WA_TranslucentBackgroundfalse、問題はなくなります。しかし、透明なウィンドウが必要です。よろしくお願いします!

4

1 に答える 1

0

私はそれを自分で解決しました。これらのアーティファクトが発生する理由は 2 つあります。ウィンドウの半透明の背景をオンにしたことと、QPainter を使用してウィンドウの丸みを帯びたコーナーの背景を手動で描画したことです。Children ウィジェット上でマウス ホバー/プレスを行うと、ウィンドウ ウィジェットに送信されたウィジェットの更新 (QRect) が背景を適切に計算しません。

スタイルシートを使用して背景を描画すると、問題は解決しました:)

于 2013-01-16T14:46:16.903 に答える