2012-11-26 26 views
12

Windows 7'de C++ Qnd Qt Creator'da (QML) bir Qt Quick Desktop uygulaması yazdım. Şimdi Şimdi dağıtmak zorundayım ve qml dosyalarını ve görüntüleri gizlemem gerekiyor (kaynak: bunları kaynaklara vb. Koymak için)C++ ve QML uygulamasında qrc nasıl kullanılır?

Bunu yapmak için harika bir yol olduğunu okudum. qrc dosyaları. Ben bu dosyaları hakkında belgelerini okuyun ve şöyle benim uygulama için bir tane yarattı:

: main.cpp olarak

<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> 
, ben Main.qml gibi dosya yükleme ediyorum

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

ama ettik:

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(); 
} 

ben gibi Resources.qrc gelen myMain.qml dosyasını okumaya çalıştım Bu hata var:

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

ve bu çalıştığımızda:

Bunu alıyorum:

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 

Benim Qt ile ne bilmiyor gibi görünüyor : ": /".

ben .qrc dosyasını kullanmak zorunda:

  • benim QML dosyalarına resim kullanma myMain.qml içinde
  • dosyaları QML için alma kullanarak myMain.qml dosyasını
  • Yükleme

Bana neyin yanlış olduğunu açıklayabilir misiniz? ve .qrc'yi hem C++ hem de qml'de kullanmak için ne yapmam gerekiyor?

Çok teşekkürler :)

+0

QML kodunu gerçekten gizlemenin bir yolu olmadığından emin olun, kaynak dosyayı kullansanız bile, bu kod hala herkes tarafından görülebilir ne sizin çalıştırıcınızı denetler, yani, herhangi bir şekilde derlenmiş, şifrelenmemiş veya ikili kod haline getirilmemiş. – johnbakers

cevap

18

Bunu deneyin mı:

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

Bunu yaptığınızda:

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

yolu "file: /// QML/GenericHostApplicationQML/myMain.qml "

+0

Oh Tnx, Çalışıyor! ve bana rehberlik etmelisiniz lütfen nasıl qml görüntü kaynağı ve qml içe aktarma? Teşekkürler! – user1835297

+0

herhangi bir fikir nasıl yapılır? – user1835297

+0

Kaynak dosyasından değil, yerel kaynak dosyadan doğrudan qml dosyasını okumak ister misiniz? – Kirween

İlgili konular