2016-08-17 23 views
1

QMLを学んでいるうちに、私は最初から良いスタイルを学びたいと思っています。 しかし、私はすでに命名に関していくつかの問題に遭遇しましたが、私はあなたの声明の順序をカバーするだけでなく、いくつかの良い命名規則をカバーする "世界的に認められた"コーディング規則のようなものを見つけることができません ここに:http://doc.qt.io/qt-4.8/qml-best-practices-coding.html)。QMLの名前衝突を避ける

私が見つけた問題は以下の通りです:
プロパティ、ID、(モデル)ロール - IDとロールがアイテムの複数のレイヤーに存在するため、すべてがかなり簡単に衝突できます。

  • のID
  • 機能
  • 機能変数
  • コンポーネント
    • 性質
    • 役割を:

      だからあなたの名前に方法上の任意の良いガイドラインがありますフィールドで価値があると証明された?種類は、性質が

      残念ながら、QMLの要素が彼らにもののかなり多くが付属してなど、小文字で始めなければなりません大文字で開始する必要があり、それがしばしばある -

    +2

    C++とあまり違いはありません。特定のクラスでは、すべてのメンバーが一意の名前(オーバーロードを除いて)を持たなければなりません。ロール、プロパティ、および関数を1つの名前空間に属するものとして扱います。 IDは常に独立して解決でき、独自の名前空間を形成します。 –

    答えて

    1

    QMLは、すでにいくつかの命名規則を施行します命名の競合が発生する場合。その場合、「最奥の宣言」が優先されているように見えます。すなわち、自分の宣言が株式のプロパティをシャドーにします.C++の場合とは異なり、BaseType::stuffとは異なります。私は、あなたが "継承された"メンバーhereを無効にして引き続きアクセスする必要がある場合に備えて、考えられるアプローチを概説しました。

    あなたが必要とするのは、衝突を避けることです。プレッシャーをかけることは効果的です。最も基本的な方法は_somethingのようにアンダースコアを使用することです - QMLのものはアンダースコアで始まらないので、衝突する危険はありません。型については、私は文字を前に追加します。これはまた、プロジェクトツリービューでコンポーネントをソート/グループ化するのに便利です。UIの場合はU_Something - U、コアの場合はC、プロトタイプの場合はPなどの前に追加します。プログラミングでの永続性、特にクラス、名前空間などを持たない言語で永続的に使用されてきた古いアプローチは、VulkanなどのC APIでよく使われるVK_ERROR_FORMAT_NOT_SUPPORTEDなどの名前を使用することです。

    関連する問題