QMLで写真を自由に配置・操作するデスクトップビューア

Qt Widgets から Qt Quick/QML へ移行すると「UI をもっと気軽に作れるはずだが、複雑なインタラクションは Widgets の方が楽では?」と思いがちです。実際に触ってみると、そんな先入観は簡単に崩れます。本稿では、シンプルなコードで写真を並べ、ドラッグ/ピンチ/ホイールで拡大・縮小・回転できるデスクトップアプリケーション「PhotoSurface」を題材に、QML の実装 ...

6月24日 20:45 投稿

QMLとC++によるデータ分離アーキテクチャの実践 - QAbstractListModelを用いた動的リスト実装

データ分離アーキテクチャの概要 Qt5以降、QMLはデスクトップアプリケーション開発における第一級のUI構築技術として定着しました。本稿では、QMLが担当するプレゼンテーション層とC++が担当するデータ層を明確に分離する実装パターンを解説します。このアプローチにより、QMLは高速なレンダリングに専念し、データ管理やビジネスロジックはC++側で堅牢に実装できます。両 ...

6月20日 19:25 投稿

QMLを使用したマリンタワーディフェンスゲームの実装分析

1. ゲーム概要 この記事ではQtに付属するQMLデモゲーム「Maroon」の実装を分析します。海洋生物をテーマにしたタワーディフェンスゲームで、以下のような特徴があります: 4種類の防御タワー(海藻、星、タコ、カニ) 敵キャラクターは魚の入った泡 ゲーム進行に伴い難易度が上昇 2. 主要コンポーネント 2.1 基本構造 ゲームの主要コンポーネントは以下のように構成 ...

5月28日 02:03 投稿

QML コーディングにおける Q_PROPERTY 不足問題の解決策

Qt でクライアント向けのアノテーションクラスを実装する際、C++ の主要データを QML に公開するために Q_PROPERTY を多用すると、十数個しか使えないという制限に遭遇しました。 class ImageShow : public QQuickPaintedItem { Q_OBJECT Q_PROPERTY(QJsonObject minio_source READ minio_source WRITE setMinio_source NOTIFY minio_sourceChanged) Q_PROPER ...

5月15日 08:50 投稿