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` を使う**
どちらを使うかは、
プログラムの目的に応じて選んでください!
コメント
コメントを投稿