QML で private な実装をする方法 2019
Qt/C++ 側では d-pointer という仕組みが有名ですが、QML でもそんなようなことをしたいですよね。 Qt 6/QML 3 ではスコープ的なものができるようですが、それまでは以下のような実装でしのぐことにしました。 // Private.qml import QtQ...
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 アプリの起動時間の...
Qtアプリのバイナリサイズを削減する(3) ではリンク時の最適化を有効にした結果で10%程度サンプルアプリのバイナリサイズを削減することができました。 configure のオプションを設定するだけで、半分以下のサイズになって素晴らしいですね。 Qt ではさらにバイナリサイズを削...
Qtアプリのバイナリサイズを削減する(2) ではサイズに最適化した結果で30%程度サンプルアプリのバイナリサイズを削減することができました。 今回は、さらに次に試すべきオプションを試してみます。 リンク時に最適化を行うコンパイルオプション Link Time Optimizati...
Qtアプリのバイナリサイズを削減する(1) では静的リンクで20%程度サンプルアプリのバイナリサイズを削減することができました。 今回は、次に試すべきオプションを試してみます。 サイズに最適化したコンパイルオプション 最適化オプションでサイズに最適化する -Os を指定します。 ...