カテゴリー: Tips

.qml ファイルのキャッシュを消す方法

Qt Quick のソースコードである .qml ファイルはテキストファイルで、アプリケーションの実行時に QQmlEngine というクラスを利用して、インタープリタとして実行されます。 ただ、起動時に毎回毎回ファイルのパースを行うとパフォーマンスが遅くなるため、Qt 5.8 ...

QtQuick の ListModel を継承して使いたい

はじめに ListModel と ListElement はよく使うエレメントですが、実は Qt Quick の中では一風変わったエレメントだということに気づいたことはありませんか? 一般的な QML のエレメントは「あらかじめ定義されているプロパティを設定する記述をする」もしく...

QUrl をローカルファイルに変換する

Qt Quick では、(主に画像ですがその他形式のファイルなどの)外部のリソースを扱う際に QUrl 形式を利用します。 Image エレメントの source プロパティ Loader エレメントの source プロパティ FontLoader エレメントの source ...

Qt Quick で SVG を表示する

Qt では QtSVG モジュールを利用して SVG ファイルを扱うことが可能です。 (SVG Tiny 1.2 の static feature をサポートしていて、それ以外の機能には対応していません。) Qt Quick では、Image エレメントを利用して画像の表示が可能...

QML にグローバル関数を追加する方法

はじめに QML や QML で利用される JavaScript にグローバル関数を追加したいことがたまに(たまに)ありますね。 やりかた QQmlEngine の rootContext に contextObject を設定してあげることで、その QObject が提供してい...

ListModel をある単位で分割したモデルを利用したい

年に一回くらいの頻度で ListView を使うけれど1画面に表示するアイテムの数は固定で SwipeView で複数ページに分けたい と思うことがあります。 ListView で縦スクロールするのではなく、SwipeView の横スクロールで表示を切り替えるってことです。 様々...

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

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