這些東西都是在本地內容和可能的Web
一樣有了一些變化,如果要加載CSS文件,你必須把它放在HTML文件,並加載HTML文件中QWebView
,您可以嵌入你的HTML中使用QWebView
文件中resource file (.qrc)
並通過添加前綴qrc
從資源加載它,這裏有一個例子:
在addresses.h文件
:
const QString MAIN_HTML = "qrc:/path-to-your-HTML-file-in-resource-file.html";
在MainWindow.cpp
:
QWebView *webView = new QWebView();
webView->settings()->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls, true);
webView->page()->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
webView->page()->settings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true);
webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
webView->settings()->setUserStyleSheetUrl(QUrl("qrc:/path-your-css-file-in-resource-file.css"));
最後加載HTML文件:
webView->load(QUrl(MAIN_HTML)); // remember to include header file -> #include "addresses.h"
,如果你想從您的本地硬盤加載您的文件,由剛剛從你的地址刪除
qrc
使用
QUrl
:
QUrl::fromLocalFile(":/path-to-your-css-file.css");
在HTML文件(如果它位於資源文件中):
<link type="text/css" rel="stylesheet" href="qrc:/path-to-your-css-file-in-resource-file.css"/>
in您的HTML文件(如果它位於本地硬盤):
<link type="text/css" rel="stylesheet" href="/path-to-your-css-file.css"/>
所以最好是嵌入在資源文件中所有的文件,它會被編譯並在輸出可執行文件中嵌入。
感謝您的答覆。但是我的網絡視圖沒有變化。每次加載新頁面時,我都嘗試設置'setUserStyleSheetUrl',但沒有任何幫助。我的應用程序允許用戶修改外觀,因此我無法將css文件嵌入到資源中。 – sahara108 2013-03-23 04:58:46
我假設我有2個保存的文件。打開文件即可,用戶可以繼續編輯網頁。但如果他/她繼續打開第二個,Qwebview將加載第一個。這真的很奇怪。無論首先打開哪個文件,總會發生這種情況。 – sahara108 2013-03-23 05:03:15
@ sahara108:在每個文件打開時,您應該設置其地址以加載(QUrl(地址)),並且QwebView加載該文件,如果文件沒有加載,問題來自加載方法以外的任何地方,請在此處發佈代碼進一步驗證。 – 2013-03-23 10:06:50