2011-05-24 5 views

ответ

5

Я закончил проезжавшие qApp->applicationDirPath() из C++ в QML с помощью setContextProperty() и используется url: "file:///" + applicationDirPath + "/htmlfiles/index.html" для устранения проблемы.

+0

+1: это способ сделать это – funkybro

+0

'engine.rootContext() -> setContextProperty (« workingDirectory », QUrl :: fromLocalFile (app.applicationDirPath()));' в Qt 5. – Timmmm

2

Try без file:///:

WebView { 
    url: "../../htmlfiles/index.html" 
    // [...] 
} 
+0

Я скопировал каталог htmlfiles, используя DEPLOYMENT в .pro, и по какой-то причине это решение не работает (возможно, я чего-то не хватает). Мой QML связан с файлом .qrc, и файл HTML копируется с использованием вышеуказанного метода. Это проблема? – pshah

+0

@pshah: если файл QML скомпилирован в двоичный файл программы, а файл HTML находится за пределами двоичного файла, на него нельзя ссылаться на относительный путь, потому что файлы находятся в двух разных «файловых системах». – hiddenbit

1

Существует простой способ сделать это:

WebView { 
     id: translationsList 
     anchors.fill: parent 
     url: "qrc:/about.html" 
     } 
+0

Как Радон предложил в комментариях раздел, я думаю, что это не сработает. «@pshah: если файл QML скомпилирован в двоичный файл программы, а файл HTML находится вне двоичного файла, на него нельзя ссылаться на относительный путь, потому что файлы находятся в двух разных« файловых системах ». – pshah

0

попробовать: имя_файла = "/ и т.д./вопрос"; url = Qt.resolvedUrl (имя файла);

3
WebView { 
     url: Qt.resolvedUrl("html/index.html") 
     x: 0 
     y: 0 
     smooth: false 
     anchors { 
      top: window.top 
      bottom: window.bottom 
      left: window.left 
      right: window.right 
     } 
    } 

Это работает для меня!