2011-08-05 20 views
11

क्या QObject::objectName संपत्ति को पूरे एप्लिकेशन के लिए अद्वितीय होना चाहिए? उदाहरण के लिए, मान लें कि मेरे पास कहीं भी "नया" नामक बटन है, फिर कहीं और मैं एक QShortcut बनाने जा रहा हूं जिसे "नया" भी कहा जाता है। क्या यह क्यूटी में समस्या पैदा करेगा?क्यूटी की वस्तुओं के नाम अद्वितीय होना चाहिए?

मुझे वस्तुओं का सही नामकरण करने के बारे में पता है (जिसे "नया" कहा जाता है, एक अच्छा नाम नहीं है) लेकिन मैं सिर्फ यह जानना चाहता हूं कि मुझे अतिरिक्त सावधान रहना चाहिए या नहीं।

उत्तर

13

ऑब्जेक्ट नामों को अद्वितीय होने की आवश्यकता नहीं है। हालांकि, वहाँ कम से कम दो बातें मैं के बारे में सोच सकते हैं जब आपके वस्तुओं नामकरण विचार करने के लिए कर रहे हैं:

  • QObject :: findChild() - एक समारोह जहां नाम से QObjects खोज सकते हैं।
  • स्टाइल शीट्स। यदि आपने किसी विजेट के नाम से किसी स्टाइल शीट को कभी भी निर्दिष्ट किया है, तो वह उस शैली के साथ विजेट के नीचे पदानुक्रम में ऑब्जेक्ट्स पर लागू होगा।
4

अन्य बातों पर विचार करने के लिए:

  • वस्तुओं के नाम की आवश्यकता नहीं है। यदि आप किसी भी सार्थक तरीके से नामों का उपयोग नहीं कर रहे हैं, तो आपको उन्हें सेट करने की आवश्यकता नहीं है। मैं आमतौर पर उन्हें QTimer एस और ऐसे जैसे एक-ऑफ ऑब्जेक्ट्स के लिए सेट नहीं करता हूं।
  • यदि आप एक .ui फ़ाइल बनाने के लिए डिज़ाइनर का उपयोग कर रहे हैं (जैसा कि आप की तरह नहीं लगता है, लेकिन बस मामले में), यूआईसी डुप्लिकेट नामों के लिए चेतावनियां थूकता है। इसलिए यदि आप उन चेतावनियों को नहीं देखना चाहते हैं, तो नामों को .ui फ़ाइल में अद्वितीय रखें (डिजाइनर _1, _2, आदि को डुप्लिकेट नामों में जोड़कर इसे लागू करने के लिए प्रेरित करता है)।
+1

क्या डिजाइनर में डुप्लिकेट नाम रखने का कोई तरीका है? यह मेरे लिए उपयोगी है। –

+0

@ एदानेश डुप्लिकेट नामों के साथ ऑब्जेक्ट्स रखना उपयोगी क्यों था? –

+0

@ के 3 --- आरएनसी मुझे बिल्कुल याद नहीं है, लेकिन मुझे लगता है कि मैंने नाम के अनुसार विजेट के लिए QApplication :: setStyleSheet (।) का उपयोग करके स्टाइलशीट सेट की थी। मैं चाहता था कि एक ही नाम वाले सभी विजेटों में एक ही स्टाइलशीट हो। हालांकि यह कार्य अन्य तरीकों का उपयोग करके किया जा सकता है उदा। गतिशील संपत्ति, लेकिन इस परियोजना के लिए मेरे लिए इस तरह से आसान था। –

संबंधित मुद्दे