カテゴリー: Tips

スコープが終わった際に処理をしたい

QMutexLocker, QReadLocker, QWriteLocker のようなクラスは、スコープ内でインスタンスを作っておけば、break や return などでそのスコープを抜けた際に自動で処理をしてくれますが、同じようなもう少し複雑なようなことをしたい場合がたまに...

QNetworkAccessManager で 同期通信

Qt で HTTP リクエストを行う際には QNetworkAccessManager (通称nam) を利用しますが、基本的には非同期の動作となり、QNetworkReply::finished シグナルを利用して終了時の処理を行います。 ただし、特殊な場合(コマンドラインアプ...

QML で private な実装をする方法 2019

Qt/C++ 側では d-pointer という仕組みが有名ですが、QML でもそんなようなことをしたいですよね。 Qt 6/QML 3 ではスコープ的なものができるようですが、それまでは以下のような実装でしのぐことにしました。 // Private.qml import QtQ...

リソースファイル分割のすゝめ

この記事は Qt Advent Calendar 2019 2日目の記事です。 リソースのおさらい 最近の Qt Quick のプロジェクトでは、.qml ファイルや .js ファイル、画像などのアセットなどを Qt のリソースシステム で管理するのが一般的になっています。 その...

Qtアプリのバイナリサイズを削減する(5)

Qtアプリのバイナリサイズを削減する(4) ではQt から不必要な機能をごっそり削除することで27%程度サンプルアプリのバイナリサイズを削減することができました。 今まではバイナリのサイズのみに着目してきましたが、今回は起動時間の変化を調査してみました。 Qt アプリの起動時間の...