15

私は、C++ と Qt を使用して構築されたオープン ソース プロジェクトで、他のプログラマーのグループと協力しています。

ここで、ウィジェット (およびその他の変数全般) の命名規則をすべてのコードで標準として使用する必要があります。これにより、コードの可読性が向上し、プログラマー間の調整が改善されます。

何かアドバイス?

編集:新しいクラスの命名について話しているのではなく、

代わりに、Qt ウィジェットのインスタンスの名前付けについて話しているのですが、ユーザー名のテキスト編集があるとしましょう。txtEdtUsrNm という名前にする必要がありますか?

その場合、どのように派生を選択すればよいのでしょうか?

4

5 に答える 5

17

あなたがこれらの方針に沿って考えている限り、私はこの QtQuarterly の記事を最初から最後まで読むことから始めたいと思います。

Qt スタイルの C++ API の設計

そうは言っても、インスタンスの「使用」を最初の部分として配置し、クラスの最後の完全な単語を最後の部分として配置することは 1 つです。

したがって、あなたの「ユーザー名」 QTextEdit は

QTextEdit * userNameEdit = new QTextEdit(this);

QListView や QTreeView などのあいまいさがある場合は、最後の明確なセクションを選択します。

QListView * userListView;

好きなように略語を考え出すことができます (QLabel の「Lbl」など) が、一般的には単語全体が機能し、読みやすくなっています。

一方、これについてはあまり厳密ではなく、クラス名を付けずにインスタンス変数の意図を示す方が重要かもしれません。将来、クラスを変更したい場合は、名前を変更する必要があるからです。優れたリファクタリング ツールがない場合、これは苦痛です。

おそらく、最もよく使用する一般的なウィジェットを見つけ出し、最も一般的なスーパークラスの命名規則を選択して、それ以外はすべて手放します。

規則に準拠するもののリストの例:

  • layout = 「Layout」で終わり、QLayout を継承するすべてのクラス
  • button = "Button" で終わり、QAbstractButton を継承するすべてのクラス

QAbstract ClassNameクラスは、そのリストに何を含めるべきかを考えるのに適した場所です。

于 2008-12-31T23:11:01.957 に答える
2

Qtはサードパーティの開発者に公開されているため、コーディングスタイルとAPI設計の原則に関するいくつかのドキュメントを利用できるようにしました。

これらのドキュメントは本当に興味深いものです。ここにいくつかのリンクがあります:

Wiki:Qtコーディングスタイル

Wiki:Apiの設計原則

そして、読む価値のあるJasmin Blanchetteからのこのドキュメント(PDF):API設計の小さなマニュアル

于 2009-07-22T12:26:36.587 に答える
1

Qt が使用するのと同じ命名規則を使用します。自分で簡単にできます。

それらの命名規則は Java に似ています。

于 2008-12-31T05:13:21.147 に答える
1

フルネームはすぐに読み書きするのが面倒になるため、通常は略語を使用しています。

QLabel * fooLB;
QPushButton * fooPB;
QTextEdit * fooTE;
QSpinBox * fooSB;

(あなたはドリフトを取得します)。はい、いくつかのあいまいさがありますが、通常は文脈から解決されます。

于 2009-07-21T17:11:46.287 に答える
0

正確には、質問は「Qtウィジェットのインスタンスの命名」に関するものですが、答えはウィジェットのインスタンスへの参照を保持する変数の命名に関するものです。

Qtウィジェットは、getter objectName()を持つnameプロパティを持つQObjectから派生します。プログラマーが値を与えない場合、Qtはプロパティに値を与えますか?これを「自動生成」または「デフォルト」値と呼びます。

于 2012-05-30T01:22:37.017 に答える