🤖

【Godot】タスクバーに合わせてウィンドウの位置を調整する

2024/12/18に公開

はじめに

ウィンドウの下側をタスクバーに合わせて位置を調整したいと思ったので、タスクバー分上に移動させて解決します。

結果

ウィンドウの陰影を考慮して配置することも可能っぽいです。

  • 陰影を考慮しない、通常の配置
    alt text

  • 陰影を考慮して少し隙間をもたせる配置
    alt text

コード

  1. スクリーンサイズとタスクバー除いたスクリーンサイズの差で、タスクバーの高さを取得
  2. スクリーンとウィンドウの差で、位置取得
  3. 位置からタスクバーぶん引くと、タスクバーを除いた位置を取得できる
  • get_window().sizeで陰影考慮せずにサイズを取得
  • get_window().get_size_with_decorations()で陰影考慮してサイズを取得

陰影なし

main.py
 var taskbarHeight = DisplayServer.screen_get_size().y - DisplayServer.screen_get_usable_rect().size.y;
 var pos = DisplayServer.screen_get_size() - get_window().size;
 pos.y -= taskbarHeight;
 get_window().set_position(pos);

陰影あり

main.py
 var taskbarHeight = DisplayServer.screen_get_size().y - DisplayServer.screen_get_usable_rect().size.y;
 var pos = DisplayServer.screen_get_size() - get_window().get_size_with_decorations();
 pos.y -= taskbarHeight;
 get_window().set_position(pos);

参考

https://www.reddit.com/r/godot/comments/s5rjsv/is_there_a_way_to_get_taskbar_height_on_windows/

https://docs.godotengine.org/en/stable/classes/class_displayserver.html

Discussion