2011-08-05 16 views
11

QObject::objectNameプロパティはアプリケーション全体で一意でなければなりませんか?たとえば、どこかに "new"と呼ばれるボタンがあるとしたら、QShortcutを "new"と呼ぶ別の場所を作成しようとしています。それはQtに問題を引き起こすでしょうか?Qtのオブジェクトの名前は一意でなければならないのですか?

オブジェクトを正しく命名することについて知っています(「新しい」という名前は良い名前ではありません)が、私は余分な注意が必要かどうかを知りたいだけです。

答えて

13

オブジェクト名は一意である必要はありません。しかし、あなたのオブジェクトに名前を付けるときには、少なくとも2つのことを考えることができます:

  • QObject :: findChild() - QObjectを名前で検索できる関数です。
  • スタイルシート。ウィジェットのスタイルシートを名前で指定すると、そのスタイルを持つウィジェットの下にある階層内のオブジェクトにその名前が適用されます。考慮すべき
4

他のもの:

  • オブジェクト名を必要としないように。意味のある方法で名前を使用していない場合は、設定する必要はありません。私は通常、QTimerなどのような一度限りのオブジェクトに対しては設定しません。
  • デザイナを使用して.uiファイルを作成している場合(あなたのようなものではないが)、重複した名前の警告が出る傾向があります。したがって、警告を見たくない場合は、.uiファイルの名前を一意にしておきます(デザイナーは名前の重複に_1、_2などを付加することでこれを強制する傾向があります)。
+1

デザイナーで重複する名前はありますか?それは私のために便利です。 –

+0

@ A.ダネシ名前が重複するオブジェクトを持つことはなぜ便利でしたか? –

+0

@ K3 --- rnc私は正確に覚えていませんが、名前でウィジェットのQApplication :: setStyleSheet(。)を使ってスタイルシートを設定したと思います。同じ名前のウィジェットがすべて同じスタイルシートを持っていたかった。この作業は、他の方法、例えば、動的なプロパティですが、この方法は私のプロジェクトにとっては簡単でした。 –

関連する問題