質問: どこでもQt :: WA_TranslucentBackgroundが利用できますか? 私はバルーンチップをエミュレートするカスタムウィジェットを持っています。正しく表示されるためには、ウィジェットはQWidget属性 `Qt :: WA_TranslucentBackground` に依存します。私のアプリケーションはすべての主要なプラットフォーム(Windows XP、Windows 7、Linux、Mac)で動作するはずですので少し気になります。この属性はすべての主要なプラットフォームで利用できますか?そうでない場合、それが照会できるのですか? `testAttribute()`はそうしません。属性が設定されているかどうかを返します。
回答: これは、ARGBをサポートしないように設定されている場合、X11以上のLinuxを除いてのみ動作します。 QWidget のドキュメントを参照してください: > 半透明のWindowsを作成する > > > > Qt 4.5以降、半透明のウィンドウを作成することができました > 合成をサポートするウィンドウシステム上の領域。 > > > > トップレベルウィジェットでこの機能を有効にするには、 > setAttribute()を使用してQt :: WA_TranslucentBackground属性を使用して > その領域の背景が非不透明な色で塗られていること > 部分的に透明にしたいと考えています。 > > > > プラットフォームノート: > > > > X11:この機能は、ARGBビジュアルと合成ウィンドウマネージャをサポートするXサーバの使用に依存します。 > > > > Windows:透光性のためにウィジェットにQt :: FramelessWindowHintウィンドウフラグが設定されている必要があります。 > > 興味深いかもしれない "透明性とダブルバッファリング"という段落も読むことを検討してください。