qmakeのプロジェクトに同じ名前のソースファイルがある場合の設定
qmake はデフォルトでは .pro の SOURCES に書かれているソースファイルをコンパイルする際に、ビルドディレクトリの直下にオブジェクトファイルを生成します。 SOURCES = a.cpp b/b.cpp c/c/c.cpp となっている場合、ビルドディレクトリ直下...
qmake はデフォルトでは .pro の SOURCES に書かれているソースファイルをコンパイルする際に、ビルドディレクトリの直下にオブジェクトファイルを生成します。 SOURCES = a.cpp b/b.cpp c/c/c.cpp となっている場合、ビルドディレクトリ直下...
QMutexLocker, QReadLocker, QWriteLocker のようなクラスは、スコープ内でインスタンスを作っておけば、break や return などでそのスコープを抜けた際に自動で処理をしてくれますが、同じようなもう少し複雑なようなことをしたい場合がたまに...
files(pattern[, recursive=false]) という qmake の関数を使うと簡単にできます。 HEADERS += $$files(*.h) SOURCES += $$files(*.cpp) とすると、同じディレクトリにあるすべての .h ファイルを ...
Qt で HTTP リクエストを行う際には QNetworkAccessManager (通称nam) を利用しますが、基本的には非同期の動作となり、QNetworkReply::finished シグナルを利用して終了時の処理を行います。 ただし、特殊な場合(コマンドラインアプ...
Qt/C++ 側では d-pointer という仕組みが有名ですが、QML でもそんなようなことをしたいですよね。 Qt 6/QML 3 ではスコープ的なものができるようですが、それまでは以下のような実装でしのぐことにしました。 // Private.qml import QtQ...
この記事は、Qt Advent Calendar 2019 17日目の記事です。 はじめに デザイン由来の QML ツリーがあり、プログラミング的に直接そこはいじりたくない場合が最近よくあります。 import QtQuick 2.12 import QtQuick.Window...
この記事は Qt Advent Calendar 2019 5日目の記事です。 Qt.vector4d(color.r, color.g, color.b, color.a) のように、color 型の変数(もしくはプロパティ)の r, g, b, a 要素でアク...
この記事は Qt Advent Calendar 2019 3日目の記事です。 解決したい問題 QML で使うデータの API が、配列的になっているべきにも関わらず、data.a1, data.a2, data.a3 のような名前になっている場合が稀によくあります。 エクセルか...
この記事は Qt Advent Calendar 2019 2日目の記事です。 リソースのおさらい 最近の Qt Quick のプロジェクトでは、.qml ファイルや .js ファイル、画像などのアセットなどを Qt のリソースシステム で管理するのが一般的になっています。 その...
https://thispersondoesnotexist.com/ という、Deep Learning を利用して、現実に存在しない人間の顔の画像を返してくれるサービスがあります。 https://thispersondoesnotexist.com/image という UR...