pygame.display.Info()
またはサーフェスpygame.display.set_mode()
が返される以外に、ウィンドウの寸法を取得する別の方法はありますか?
サイズ変更可能なウィンドウを備えたソフトウェアを開発しています。ほとんどのウィンドウ マネージャーでは既定のサイズを設定しても問題ありませんが、タイリング マネージャー (Awesome、Xmonad など) では、選択した動的なサイズに積極的にウィンドウを合わせます。この再調整は、SDL が初期ウィンドウを作成した後、非常に高速にpygame.VIDEORESIZE
行われるため、新しい (正しい) ディメンションでイベントを生成しません。
最初に、新しいサイズが 0 の偽の videoresize イベントを生成すると、問題なく動作します。
P.event.post(P.event.Event(P.VIDEORESIZE, size=(0,0), w=0, h=0))
少なくとも Xmonad はこれを見て、適切なサイズに再度サイズ変更します。従来のウィンドウ マネージャでは、それほどきれいではないという予感があります。おそらく、ウィンドウはすべての画面領域をカバーするようになります。
フレームサイズを決定するより良い方法はありますか?