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 for MCU 向けに開発された、Qt Quick のランタイムで利用可能な C++ の API のドキュメントが公開されていましたので紹介します。 Qul::Items::QtObject C++ で QML のエレメントを生成するための基底クラスです。 public か...
はじめに 大規模な Qt Quick のアプリケーションの開発時などに、QML ファイルの何かをチェックしたり、一括で処理をするようなツールが欲しくなることがあります。 その作業を正確に行うには、QML のパースが必要となりますが、ゼロから書く気にはなりませんよね。 当然ですが、...
The Qt Blog に Technical vision for Qt 6 という記事が投稿されました。 この記事の内容を元に、来年リリースされる予定の Qt 6 がどうなるのかを紹介したいと思います。 Qt 5 の振り返り 2011年5月に、Thoughts about Q...
ちょっとお仕事で技術的に怪しいことを色々試していたところ、Qt Quick の謎のバグを見つけてしまいました。 import QtQuick 2.12 State { when: true } こんな記述をすると、 when.qml...
Qtアプリのバイナリサイズを削減する(4) ではQt から不必要な機能をごっそり削除することで27%程度サンプルアプリのバイナリサイズを削減することができました。 今まではバイナリのサイズのみに着目してきましたが、今回は起動時間の変化を調査してみました。 Qt アプリの起動時間の...
Qtアプリのバイナリサイズを削減する(3) ではリンク時の最適化を有効にした結果で10%程度サンプルアプリのバイナリサイズを削減することができました。 configure のオプションを設定するだけで、半分以下のサイズになって素晴らしいですね。 Qt ではさらにバイナリサイズを削...
Qtアプリのバイナリサイズを削減する(2) ではサイズに最適化した結果で30%程度サンプルアプリのバイナリサイズを削減することができました。 今回は、さらに次に試すべきオプションを試してみます。 リンク時に最適化を行うコンパイルオプション Link Time Optimizati...