2012-11-26 17 views
12

मैंने विंडोज 7 पर सी ++ क्यूएन क्यूटी निर्माता (क्यूएमएल) में एक क्यूटी त्वरित डेस्कटॉप एप्लिकेशन लिखा है। अब मुझे इसे तैनात करना है, और मुझे qml फ़ाइलों और छवियों को छिपाने की आवश्यकता है (मतलब: उन्हें संसाधनों और आदि में रखने के लिए)सी ++ और क्यूएमएल एप्लिकेशन में qrc का उपयोग कैसे करें?

मैंने पढ़ा है कि ऐसा करने का एक शानदार तरीका है। qrc फ़ाइलें। मैं उन फ़ाइलों के बारे में दस्तावेज़ पढ़ा है, और अपने आवेदन है, जो इस तरह दिखता है के लिए एक बनाया:

:

<RCC> 
<qresource prefix="/"> 
    <file>qml/GenericHostApplicationQML/myMain.qml</file> 
    <file>qml/GenericHostApplicationQML/content/PressAndHoldButton.qml</file> 
    <file>qml/GenericHostApplicationQML/content/TextButton.qml</file> 
    <file>qml/GenericHostApplicationQML/content/pics/advancedsettings.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/cnruninstall.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/dialog_cancel.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/folder_explore.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/gnome_session_switch.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/mail2_send.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/Picture1.png</file> 
    <file>qml/GenericHostApplicationQML/content/pics/Picture2.png</file> 
</qresource> 

main.cpp में, मैं Main.qml की तरह फ़ाइल लोड कर रहा हूँ

view.setSource(QUrl(":/qml/GenericHostApplicationQML/myMain.qml"));//I added the ":/" 

लेकिन मैं कर दिया है:

int main(int argc, char *argv[]) 
{ 
    QApplication app(argc, argv); 
    QDeclarativeView view; 
    view.setSource(QUrl::fromLocalFile("qml/GenericHostApplicationQML/myMain.qml")); 
    view.show(); 
    return app.exec(); 
} 

मैं की तरह Resources.qrc से myMain.qml फ़ाइल को पढ़ने की कोशिश की यह त्रुटि आई:

file:///qml/GenericHostApplicationQML/myMain.qml: File not found 

और जब मैं इस की कोशिश की:

मैं इस हो रही है:

file:///C:/Users/ayalafre/Desktop/ghaQML/GenericHostApplicationQML-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK__Release/:/qml/GenericHostApplicationQML/myMain.qml: File not found 

ऐसा लगता है कि मेरी क्यूटी क्या से कोई लेना देना नहीं जानता है लगता है : ": /"।

मैं में .qrc फ़ाइल का उपयोग करने के लिए है:

  • myMain.qml फ़ाइल
  • लोड हो रहा है myMain.qml में फ़ाइलों qml को
  • मेरी qml फाइलों में छवियों का उपयोग आयात का उपयोग करना

क्या आप मुझे समझा सकते हैं कि क्या गलत है ?? और सी ++ और qml दोनों में .qrc का उपयोग करने के लिए मुझे क्या करना है?

धन्यवाद एक बहुत :)

+0

मुझे यकीन है कि वास्तव में QML कोड को छिपाने का कोई तरीका नहीं है, भले ही आप संसाधन फ़ाइल का उपयोग करें, वह कोड अभी भी किसी भी के लिए दृश्यमान है ne जो आपके निष्पादन योग्य का निरीक्षण करता है, यानी यह किसी भी तरह से संकलित, एन्क्रिप्टेड या बाइनरी कोड में परिवर्तित नहीं होता है। – johnbakers

उत्तर

18

आप इस कोशिश है:

view.setSource(QUrl("qrc:/qml/GenericHostApplicationQML/myMain.qml")); 

जब आप ऐसा करते:

QUrl(":/qml/GenericHostApplicationQML/myMain.qml"); 

पथ "है file: /// qml/GenericHostApplicationQML/myMain.qml "

+0

ओह टीएनएक्स, यह काम करता है !!! और क्या आपको मुझे मार्गदर्शन करना चाहिए कृपया इसे qml छवि स्रोत और qml आयात में कैसे उपयोग करें? आगे धन्यवाद !! – user1835297

+0

कोई विचार यह कैसे करना है? – user1835297

+0

आप स्थानीय स्रोत फ़ाइल से सीधे qml फ़ाइल को पढ़ना चाहते हैं, न कि संसाधन फ़ाइल से? – Kirween