#qt #url #webview #qml #relative-path
#qt #url #webview #qml #относительный путь
Вопрос:
Я пытаюсь заставить QML (main.qml) загрузить локальный HTML-файл index.html использую url: "file:///../../htmlfiles/index.html"
, но это не работает.
Не могли бы вы, пожалуйста, помочь?
Ответ №1:
В итоге я перешел qApp->applicationDirPath()
с c на QML с помощью setContextProperty()
и использовал url: "file:///" applicationDirPath "/htmlfiles/index.html"
для устранения проблемы.
Комментарии:
1.
engine.rootContext()->setContextProperty("workingDirectory", QUrl::fromLocalFile(app.applicationDirPath()));
в Qt 5.
Ответ №2:
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
}
}
У меня это работает!
Ответ №3:
Попробуйте без file:///
:
WebView {
url: "../../htmlfiles/index.html"
// [...]
}
Комментарии:
1. Я скопировал каталог htmlfiles, используя DEPLOYMENT в .pro, и по какой-то причине это решение не работает (возможно, я что-то упускаю). Мой QML связан с использованием . файл qrc и HTML-файл копируются с использованием описанного выше метода. В этом проблема?
2. @pshah: Если файл QML скомпилирован в двоичный файл программы, а HTML-файл расположен вне двоичного файла, на него нельзя ссылаться по относительному пути, потому что файлы находятся в двух разных «файловых системах».
Ответ №4:
Есть более простой способ сделать это:
WebView {
id: translationsList
anchors.fill: parent
url: "qrc:/about.html"
}
Комментарии:
1. Как предложил Радон в разделе комментариев, я думаю, это не сработает. «@pshah: Если файл QML скомпилирован в двоичный файл программы, а HTML-файл расположен вне двоичного файла, на него нельзя ссылаться по относительному пути, потому что файлы находятся в двух разных «файловых системах».
Ответ №5:
попробуйте: filename=»/etc/issue»; url = Qt.resolvedUrl(имя файла);