大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Qt プログラミング – QWidgetのカスタマイズ-IconEditorクラス

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2020/06/28
最終更新日:2020/07/02
カテゴリー:技術情報
タグ:

津路です。
Qt プログラミング – QWidgetのカスタマイズでは、簡単に前準備をしました。
IconEditorのソースを示します。

WA_StaticContentsでは、コンテンツを左上に寄せて、staticとします。
setSizePolicyにminimumを指定すると、sizeHintに従います。つまり、最小のサイズを伝えます。
zoomは、前回宣言した拡大率です。
curColorとは、黒ペンです。
QImageを生成して、半透明がサポートされる32bitARGBフォーマットで初期化します。

ここで、実際に何を作るのか説明しておきます。
アイコンエディタを作るのですが、このIConEditorクラスをQt Designerへと組み込んで、アイコンを描画できるようにするのが目標です。

さて、アイコンのデータは、image変数に格納され、setIconImage()でWrite, iconImage()でリードします。エディタでは、ファイルのオープン時にsetIConImageを、保存時にiconImageを呼び出します。
Qtには、QRgb, QColorの2通りの色の格納方法があります。QRgbは、単なるtypedefで、QImageに32ビットのピクセルデータを格納するためにもいちます。QColorには多くの便利な関数が用意され、広い範囲で用いられています。
今回のウィジェットでは、QImageにはQRgbのみを使用し、他ではすべてQColorを用います。

sizeHint関数は、ウィジェットの望ましいサイズを返します。画像のサイズに拡大率をかけ、3以上の場合には、グリッドの調整のために、縦横両方向に、1ピクセルを加えます。1,2の場合には、ピクセルを表示する余地がなくなってしまうので、グリッド表示を行いません。
Qtのレイアウトマネージャーは、子ウィジェットの配置時に、このサイズヒントを満たそうとします。

    上に戻る