|
カテゴリ:Python
私が比較的よく訪れるサイトの一つにthe mouse vs. the pythonpython programming from the frontlinがある。Pythonプログラミングのヒントがいろいろ掲載されるので好きなサイト。
今日は、Getting Your Screen Resolution with Pythonというのが載っていたのでやってみた。
それぞれの記述がある。いずれにせよ、下回りは、Windowsなら PyWin32 の win32api か ctypes 、Mac なら AppKit とか、プラットフォームに依存しているわけだが、上記のようなクロスプラットフォームな GUI のフレームを使うことによって吸収されるので、意識する必要はない。 ちなみに、最初の Linux の例では、X Window 環境なら xrandr | grep '*' でコマンドの出力から '*' のある行を取り出して、最初の部分に解像度があるので、テキスト処理をしているというもの。コマンド出力をちょっと処理してというのを subprocess.Popen でパイプ処理してという類の参考になる。つまり、こんな感じ、あとでパイプ処理を他の用途に流用できるようにしてみた(1つコマンドを実行して、その結果を2つ目のコマンドで処理してのパターン)。
というのはさておき、それぞれの例をやってみたが、Linux 上では問題なく動いた。 Windows 10 上でも Linux のは別として、すべて問題なく動いた。クロスプラットフォームではなく Windows 上だけで動くことを前提であれば、Win32api や ctypes で呼び出した方が、読み込み時間が少ないので速い。
か、もっと最低限の読み込みだと、
How do I get monitor resolution in Python? を見ると、もうちょっと、正確にやるにはどうしたらよいかというのも色々議論がある。例えば、Windows 上で DPI やデスクトップスケーリングを考慮した場合にはどうなるとか。(dpi_and_the_desktop_scaling_factor)。 ところで複数のモニターとか接続してたらどうなるのか。あれこれ考慮し始めると面倒なことになる。なので、先人の成果をいただいて、
でよいかと。すばらしい。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2015.08.21 05:22:11
コメント(0) | コメントを書く
[Python] カテゴリの最新記事
|