Qt Quick は、Qt フレームワークにおいて UI 作成のために利用されるライブラリです。Qt Quick で利用される言語 QML (Qt Modeling Language) について、基本的な使い方を記載します。
検証用のコード
sample.py
view.qml
JavaScript の利用
プロパティを動的に生成
QML ファイル内に記載
JavaScript ファイルを読み込み
myscript.js
view.qml
簡易 QML デバッグ
プリントデバッグ
出力例
console.log()
console.exception()
console.trace()
値の検証
console.assert()
を利用できます。スタックトレースも出力されます。
出力例
時間の計測
console.time()
から console.timeEnd()
までの時間を計測できます。
出力例
実行回数の調査
ある箇所が何回実行されたかを console.count()
で確認できます。
出力例
インポート情報の確認
環境変数 QML_IMPORT_TRACE=1
で実行すると、以下のような情報を確認できます。
レイアウト
座標での指定
親の位置をもとにして x
と y
で相対的な座標を指定できます。
id で指定した要素との位置関係を指定
他の要素の位置を元にして anchors
で位置を指定できます。以下では parent
をもとにしていますが、その他に同階層の任意の要素に対して id
を指定することで位置関係を指定できます。
動的に anchors を切り換える
State
の AnchorChanges
を利用することで指定した要素の anchors
を動的に変更できます。その際 Transition
の AnchorAnimation
も併用することで遷移時のアニメーションについて指定できます。
遷移前
遷移後
Row、Column、Grid の利用
Row、Column、Grid 等を利用すると、子要素を整列させることができます。
QML ファイルの分割
MyRectangle.qml
MyQml/MyText.qml
view.qml
その他
プロパティ
必要な値を property
で宣言して利用できます。
i18n
必要な設定をしておくことで、qsTr() を利用して翻訳できます。
Qt Quick Controls モジュール
Qt Quick Controls を import することで、便利なモジュールが利用できるようになります。
都度参照するためのドキュメント
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- Qt for Python (PySide2) の基本的な使い方QT を Python から利用するためのライブラリには PyQt や PySide 等が存在します。PySide は元々 QT4 向けのライブラリでしたが、QT5 に対応するために新たに PySide2 が開発されました。PySide2 は Qt for Python ともよばれています。 Q: PySide? Qt for Python? what is the name?A: The nam...
- Python コードスニペット (条件分岐)if-elif-else sample.py #!/usr/bin/python # -*- coding: utf-8 -*- # コメント内であっても、ASCII外の文字が含まれる場合はエンコーディング情報が必須 x = 1 # 一行スタイル if x==0: print 'a' # 参考: and,or,notが使用可能 (&&,||はエラー) elif x==1: p...
- Python コードスニペット (リスト、タプル、ディクショナリ)リスト range 「0から10まで」といった範囲をリスト形式で生成します。 sample.py print range(10) # for(int i=0; i<10; ++i) ← C言語などのfor文と比較 print range(5,10) # for(int i=5; i<10; ++i) print range(5,10,2) # for(int i=5; i<10;...
- ZeroMQ (zmq) の Python サンプルコードZeroMQ を Python から利用する場合のサンプルコードを記載します。 Fixing the World To fix the world, we needed to do two things. One, to solve the general problem of "how to connect any code to any code, anywhere". Two, to wra...
- Matplotlib/SciPy/pandas/NumPy サンプルコードPython で数学的なことを試すときに利用される Matplotlib/SciPy/pandas/NumPy についてサンプルコードを記載します。 Matplotlib SciPy pandas [NumPy](https://www.numpy