2021-07-14

【備忘録】フォントのポイントをピクセルへ変換 ~ PySide6

Qt for Python (PySide6) は、Qt 6 の Python バインディングで、Qt 6と同じく、LGPLv3 / GPLv3Qt commercial license(商用ライセンス)が適用されています。

フォントの大きさに合わせて、アイコンのサイズも調節したい場合があります。ポイントで指定したフォントのピクセル数を割り出して、その情報からアイコンのサイズを変更する例を、QScrollArea のサンプルとして作りました。

本ブログ記事では下記の OS 環境で動作確認をしています。

Fedora 34 Workstation x86_64
- python3-3.9.6-1
- venv/pip: PySide6 (6.1.2)

QScrollArea のサンプル

QScrollArea のサンプルと書いておきながら、QScrollArea の適切なサンプルとは言えないのですが、ポイント数で指定したフォントに対して、下記のようにしてフォントのポイント数に対して実ピクセル数を算出しています。

int(font_size * QPaintDevice.physicalDpiY(self) / 72)

下記にサンプルを示しました。

qt_scrollarea.py

実行例を下記に示しました。

qt_scrollarea.py の実行例

ちなみに、使用している鉛筆アイコン (pencil.png) は、128 x 128 の PNG 画像です。

 

参考サイト

  1. QScrollArea — Qt for Python
  2. QPaintDevice — Qt for Python

 

 

ブログランキング・にほんブログ村へ bitWalk's - にほんブログ村 にほんブログ村 IT技術ブログ Linuxへ
にほんブログ村

0 件のコメント: