2013-06-18 6 views
9

मैं अपने नामस्थान में यूआई क्लास रखना चाहता हूं, जैसे ProjectName :: MainWindow। क्या क्यूटी निर्माता में इसे हासिल करने का कोई सुविधाजनक तरीका है, कृपया?क्यूटी निर्माता - यूआई कक्षाओं के लिए कस्टम नेमस्पेस

मैं mainwindow.ui फ़ाइल खोल सकता हूं और "मेनविंडो" से "ProjectName :: MainWindow" में बदल सकता हूं, जो संकलित करता है और काम करता है। लेकिन जब मैं यूआई डिजाइनर में कुछ बदलता हूं, तो यूई फाइल फिर से उत्पन्न होती है ... गलत वर्ग के नाम के साथ।

+0

क्या आप अपनी खुद की फॉर्म क्लास (डिफ़ॉल्ट रूप से डिफ़ॉल्ट नामस्थान में हैं, और इसका स्रोत प्रोजेक्ट में है) या क्यूटी-जेनरेट की गई यूआई क्लास के बारे में बात कर रहे हैं (यह डिफ़ॉल्ट रूप से 'यू' नामस्थान में है और इसकी घोषणा में संग्रहीत है Qt- जेनरेट की गई ui_ClassName.h' फ़ाइल)? –

+0

मेरा अपना। लेकिन जेनरेट क्लास प्रोपर नेमस्पेस में भी होना चाहिए। आईडी है: प्रोजेक्टनाम :: मेनविंडो मेरे और प्रोजेक्टनाम :: जेनरेटेड के लिए यूआई। – eMko

उत्तर

15

जब आप नया डिज़ाइनर फॉर्म क्लास बनाते हैं, तो नामस्थान के साथ कक्षा का नाम निर्दिष्ट करें, उदा। ProjectName::MainWindow। क्यूटी निर्माता स्वचालित रूप से निम्नलिखित कोड उत्पन्न करेगा।

MainWindow.h:

namespace ProjectName { 
    namespace Ui { 
    class MainWindow; 
    } 
    class MainWindow : public QWidget { 
    Q_OBJECT  
    public: 
    explicit MainWindow(QWidget *parent = 0); 
    ~MainWindow();  
    private: 
    Ui::MainWindow *ui; 
    }; 
} // namespace ProjectName 

MainWindow.ui:

<?xml version="1.0" encoding="UTF-8"?> 
<ui version="4.0"> 
<class>ProjectName::MainWindow</class> 
<widget class="QWidget" name="ProjectName::MainWindow"> 
    <property name="geometry"> 
    <rect> 
    <x>0</x> 
    <y>0</y> 
    <width>400</width> 
    <height>300</height> 
    </rect> 
    </property> 
    <property name="windowTitle"> 
    <string>Form</string> 
    </property> 
</widget> 
<resources/> 
<connections/> 
</ui> 

जैसा कि आप देख, दोनों MainWindow और Ui::MainWindowProjectName नाम स्थान में हैं।

+1

जोड़ में, आपको XML दस्तावेज़ को संपादित करने की भी आवश्यकता नहीं है। आप QtDesigner – RobbieE

+1

के अंदर नाम संपत्ति को आसानी से संपादित कर सकते हैं उत्तर में चाल (क्यूटी निर्माता 2.7.0) केवल क्लास जोड़ते समय काम करता है, न कि प्रोजेक्ट बनाते समय - विज़ार्ड क्लास नाम में गैर मान्य वर्णों के बारे में शिकायत करता है। जिसने मुझे रहस्यमय किया ... QtDesigner में संपत्ति को संपादित करना भी काम करता है। आपका बहुत बहुत धन्यवाद! – eMko

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