QMLコードのいくつかの部分をオフにする必要があります。このコードはデモ目的で行われており、最終リリースでは削除されるためです。しかし、製品はデモ機能と共に長く使用されるため、デモ機能を備えた別個のブランチを使用することはできません。常に新しい機能をそのブランチにマージすることはできません。だから、このコードを実行するのはいいですが、必要に応じてスイッチを切ったり取り外したりするのは簡単です。 CとC++ではifdef
マクロを使っていますが、QMLでも同じことができますか?CスタイルのifdefマクロをQMLでシミュレートするには?
答えて
あなたは自分のコンポーネントにそれらの部品をリファクタリングすることができた場合は、次の2つのオプションがあります。
を最初のオプションは、おそらくC-スタイルに少し近いです#ifdef
マクロはLoader
を使用するよりも、ファイルレベルで動作します。 Loader
を過度に使用しない限り(たとえ大きなビューの代理人として)でも、どちらもうまく機能するはずです。
答えに感謝します。これらの2つのオプションは別のことを行います。私は、動的にロードできるファイルまたはコードのいずれかを別々のコンポーネントに分けていません(実際に作ることはできません)。むしろ、いくつかの関数のフローを変更し、 'Component.onCompleted'などを使用するように、いくつかのプロパティを導入しているコードが散在しているので、両方の方法は本当に役に立ちません。 %同一、これは私に過労に思える。 – rightaway717
あなたは運が悪いと思いますが、残念ながら。 – Mitch
#ifdef
は、プリプロセッサの命令です。つまり、CまたはC++コンパイラがコードを参照する前にビルド時に処理されたものです。 QMLファイルを処理する前に、作成時にQMLファイルを処理して、選択したテキスト操作言語を使用して同じことを行うことができます。 Qtリソースコンパイラによって。
また今、あなたは簡単にデバッグをチェックするためstName.isDebuggingEnable()メソッドを呼び出すことができる機能
Q_INVOKABLE bool isDebuggingEnable()
{
#ifdef QT_DEBUG
return true;
#else
return false;
#endif
}
でクラスDebugCを使用して、QML
viewer->rootContext()->setContextProperty("stName", DebugCObj)
でこのクラスを登録することができます有効にする場合、またはあなたのQMLファイルではありません。そのわずかトリック
お返事ありがとうございます。 2つのコメントがあります。プロジェクトをデバッグ/リリースモードでコンパイルするかどうかを確認するには、新しいマクロを作成するのではなく、 'QT_NO_DEBUG'または' QT_DEBUG'マクロを使用する方が良いでしょう。第二に、これは普通の '' if''のようにC言語の 'ifdef'のようなマクロとは異なりますが、やや異なっています。 – rightaway717
QMLはがをコンパイルしたが、がプリプロセッサディレクティブはQMLで直接を使用することはできませんので、実行時に解釈ではありません。 しかし、C++側からQMLにプロパティを導入することが可能であるため、これに限定されるものではありません。したがって、これらのプロパティに基づいて意思決定を行いながら、C++側に指示を配置することができます。 QML側で使用されます。
- 1. PerlでCスタイルのマクロをシミュレートできますか?
- 2. `#ifdef ... #endif`マクロブロックに展開されるCマクロを書くには?
- 3. #ifdef #else #endifマクロ質問
- 4. emacs、#ifdefマクロの色の変更、インデント
- 5. 別のマクロで#ifdef、#endif節を生成する
- 6. QML + PyQt5素材スタイル
- 7. #ifdef、#ifndef、#undefは関数のようなマクロで動作しますか?
- 8. C#とVB.NETでC++の友達をシミュレートするには?
- 9. は#ifdefの
- 10. QMLはQMLに++クラスCを接続します。私は私のC++のクラスにQMLのアイテムのリストを送信するつもりですM16エラー
- 11. '#IFDEFマクロ'で使用するためにqmakeファイルを複数のターゲットにビルドする
- 12. QMLアプリケーションとQML/C++アプリケーション
- 13. C++とQML:接続QML信号C++スロット
- 14. ifdef?
- 15. C#でWinkeyの動作をシミュレートする
- 16. C++でJavaのインポートをシミュレートする
- 17. Cでスタイルを設定するには?
- 18. QML/C++ WebSocketを
- 19. m4でエスケープするifdef文
- 20. QT QML C++とQMLの両方のアイテム
- 21. ポストマンをシミュレートするC# - RestSharp
- 22. QML unittestのは、C++コンテキストプロパティ
- 23. QML TextViewはスクロールバーのスタイルを変更しますか?
- 24. この投稿要求をC#でシミュレートするには
- 25. C#のは、マウスホイールを下にシミュレート
- 26. QMLにC++クラスを公開
- 27. Cマクロを複製するには?
- 28. マクロ内のマクロC
- 29. C++とQMLアプリケーションでqrcを使用するには?
- 30. Cでキープレスをシミュレートする方法
あなたのコードを 'Component'に置き、必要なコンポーネントを使います。 – folibis