2011-08-05 16 views
11

QObject::objectName özelliğinin tüm uygulama için benzersiz olması gerekiyor mu? Örneğin, "yeni" adında bir yerde düğmem olduğunu varsayalım, sonra başka bir yerde "yeni" olarak da adlandırılan bir QShortcut oluşturacağım. Qt için bir soruna neden olacak mı?Qt'ın nesnelerinin adları benzersiz olmalı mı?

Düzgün adlandırma nesneleri ("yeni" denilen bir şey iyi bir isim değil) hakkında biliyorum, ancak sadece fazladan dikkat etmem gerekip gerekmediğini bilmek istiyorum.

cevap

13

Nesne adlarının benzersiz olması gerekmez. Ancak, nesneleri adlandırırken dikkate Aklıma en az iki şey vardır:

  • QObject :: findChild() - adıyla QObjects araması yapabileceğiniz bir fonksiyon.
  • Stil sayfaları. Bir widget'ı adlarına göre bir stil sayfası belirttiyseniz, bu adın sahip olduğu stille, widget'ın altındaki hiyerarşi içindeki nesnelere uygulanır.
4

Diğer şeyler düşünmeye:

  • Nesneler isimleri gerektirmeyecek şekilde. Eğer isimleri anlamlı bir şekilde kullanmıyorsanız, onları ayarlamak zorunda değilsiniz. Normalde onları QTimer s gibi bir kerelik nesneler için ayarlamıyorum.
  • Bir .ui dosyası oluşturmak için tasarımcı kullanıyorsanız (sizin gibi ses çıkarmıyor, ancak tam tersi durumda), uic iki ad için uyarı yazmayı tercih ediyor. Bu uyarıları görmek istemiyorsanız, adları .ui dosyasında benzersiz tutun (tasarımcı, adları çoğaltmak için _1, _2, vb. Ekleyerek bunu zorlama eğilimindedir).
+1

Tasarımcıda yinelenen adlara sahip olmanın bir yolu var mı? Benim için faydalı. –

+0

@ A.Danesh Yinelenen adlara sahip nesnelere sahip olmak neden yararlı oldu? –

+0

@ K3 --- rnc Tam olarak hatırlamıyorum, ancak bir widget'ı bir widget için QApplication :: setStyleSheet (.) Kullanarak ayarlamıştım. Aynı adda sahip tüm widget'ların aynı stil sayfasına sahip olmasını istedim. Her ne kadar bu görev başka yollarla yapılabilir. dinamik özellik, ancak bu proje için bu şekilde benim için daha kolay oldu. –

İlgili konular