custom_tkinter_実行している画面 ディスプレイの解像度を取得したい場合


pythonのcustom tkinterでuiを組んだパソコン用の

プログラムを作成する場合、


そのプログラムが動作する環境のうち、

uiを表示するディスプレイの解像度


たとえば 1920 × 1080


とか、そういった値を取得したい場合、

pythonであればどのように記述するのでしょうか?



Pythonでディスプレイの解像度

(例: 1920×1080)を取得するには

、`tkinter` または `screeninfo` ライブラリを使用できます。


CustomTkinter は `tkinter` の拡張なので、

基本的な Tkinter の 

`winfo_screenwidth()` / `winfo_screenheight()` 

メソッドがそのまま利用できます。


---


## **方法1: Tkinter(CustomTkinterでも利用可能)**


CustomTkinter でも 

`winfo_screenwidth()` 

/ `winfo_screenheight()` 

が使えるため、以下の方法が動作します。


```python


import customtkinter as ctk


# アプリのウィンドウを作成

root = ctk.CTk()


# 画面の解像度を取得

screen_width = root.winfo_screenwidth()

screen_height = root.winfo_screenheight()


print(f"画面の解像度:

{screen_width} x {screen_height}")


# ウィンドウを開かずに解像度だけ取得したい場合

root.destroy()


```


**出力例(フルHD環境の場合)**


```


画面の解像度: 1920 x 1080


```


この方法は 

**Tkinter の GUI ループを起動しなくても

解像度を取得できる** ので、便利です。


---


## **方法2: `screeninfo` を使う**


もし複数のディスプレイの情報を取得したい場合、

`screeninfo` ライブラリを使うのが便利です。


### **インストール**


まず `screeninfo` をインストールします。


```sh


pip install screeninfo


```


### **コード**


```python


from screeninfo import get_monitors


# すべてのディスプレイ情報を取得

for monitor in get_monitors():


    print(f"ディスプレイ 

{monitor.name}: {monitor.width}

x {monitor.height}")

```


**出力例(デュアルディスプレイ環境の場合)**


```


ディスプレイ \\.\DISPLAY1: 1920 x 1080


ディスプレイ \\.\DISPLAY2: 2560 x 1440


```


この方法なら 

**複数のディスプレイの情報** も取得できます。


---


## **どちらを使うべきか?**



Tkinter (`winfo_screenwidth()`

/ `winfo_screenheight()`)


簡単・CustomTkinter でも使える 

メインディスプレイの情報しか取得できない


`screeninfo`


マルチディスプレイ対応

追加のライブラリをインストールする必要がある




- **CustomTkinter のアプリ内で

解像度を取得するだけなら 


`winfo_screenwidth()` を使う**



- **マルチディスプレイの情報も取得したいなら 

`screeninfo` を使う**



どちらを使うかは、

プログラムの目的に応じて選んでください!


コメント