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 投稿