2

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

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

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

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

4

2 に答える 2

3

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

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

于 2008-08-27T16:34:56.693 に答える
0

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

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

于 2008-10-02T17:45:20.010 に答える