質問

Qtで子の初期ウィンドウ位置を指定する方法はありますか?

Linux と Windows で実行されるアプリケーションがありますが、Qt のデフォルトの動作では、ウィンドウ マネージャーが子ウィンドウの配置を決定できるようです。

Windows では、これは親がいる画面の中央にあり、これは合理的だと思われます。

Linux では、GNOME (metacity) では常に左上隅に表示されるので煩わしいです。ウィンドウの配置を制御できるメタシティのウィンドウ マネージャー設定が見つからないため、その動作をオーバーライドしたいと考えています。

役に立ちましたか?

解決

Qt ウィジェットのジオメトリ

show() の前に、子ウィンドウで move(x, y) メソッドを呼び出します。x と y のデフォルト値は 0 なので、左上隅に表示されます。
親ウィンドウの位置を使用して、子の相対位置を計算することもできます。

他のヒント

一般に、アプリケーションに非常に特別なウィンドウ要件がない限り、ウィンドウの位置を強制しないことをお勧めします。新しいウィンドウをどこに配置するかを決定するのはウィンドウ マネージャーの仕事であり、ほとんどのウィンドウは適切に機能します。MetaCity が適切なポジションを選択していない場合、それは MetaCity の問題です。

独自のウィンドウ配置を行うと、貧弱なウィンドウ マネージャーで得られるものよりも良い結果が得られる可能性がありますが、より高度なウィンドウ マネージャーで利用できるインテリジェントなウィンドウ配置アルゴリズムを利用できなくなることもあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top