Qtウィジェットオーバーレイ
-
06-07-2019 - |
質問
Qtでウィジェットをオーバーレイするにはどうすればよいですか
いくつかのウィジェットを作成してレイアウト外に配置したいが、他のウィジェットのジオメトリが変更されたときにサイズと位置を微調整したい。
スクリーンショットのボタンのようなもの:
解決
QPushButton(またはQWidget)を作成し、その親QWidgetを指定して表示するだけです。
親レイアウトに追加しないでください。追加しないと、希望どおりに移動できません。
親を示すことを忘れないでください。それ以外の場合は、独立したQWidgetとして表示されます。
これらの条件では、QPushButtonはQWidgetの子と見なされますが、親のレイアウトのメンバーとは見なされません。したがって、「フローティング」になります。子であり、親のQWidgetのサイズを変更するときの動作を管理する必要があります。
すべてのオーバーレイボタンの統一された動作が必要な場合は、 をサブクラス化する必要がありますQLayout
およびメンバーの振る舞いを再定義します。
他のヒント
レイアウトのないウィジェットの子である場合、好きなように移動できるはずです。
作業中のプロジェクトにはこのようなウィジェットが必要だったため、Patriceのアドバイスを受けてこのコードを作成しました(Python) PyQt4ウィジェットオーバーレイ
所属していません StackOverflow