スコープが終わった際に処理をしたい
QMutexLocker, QReadLocker, QWriteLocker のようなクラスは、スコープ内でインスタンスを作っておけば、break や return などでそのスコープを抜けた際に自動で処理をしてくれますが、同じようなもう少し複雑なようなことをしたい場合がたまに...
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...
Qtアプリのバイナリサイズを削減する(4) ではQt から不必要な機能をごっそり削除することで27%程度サンプルアプリのバイナリサイズを削減することができました。 今まではバイナリのサイズのみに着目してきましたが、今回は起動時間の変化を調査してみました。 Qt アプリの起動時間の...