2017-05-31 481 views
-1

我的應用程序中有一個QTextBrowser,裏面充滿了HTML和許多href。我希望它們可點擊並打開默認應用程序以轉到該網頁 - 我看到了this answer,但我不知道應該在默認樣式表中添加什麼來完成此操作。QT打開HREF鏈接

鏈接到HTML源:https://pastebin.com/ApSm296G

因爲我要縮進的東西來發布引擎收錄鏈接:

foo 
bar 
+0

你爲什麼用CSS標籤這個?爲什麼您的標題talkes約樣式表?你的'QTextBrowser'只顯示一個html內容? – jpo38

+0

@ jpo38如果您閱讀鏈接的答案,他們說可以通過CSS完成。 – MadisonCooper

回答

1

沒有必要在這裏使用任何樣式表/ CSS的東西。

要獲取QTextBrowser::setOpenExternalLinks(true)然後,as documentedQTextBrowser將則:

自動打開鏈接使用QDesktopServices的OpenURL()而不是發射 的anchorClicked信號 外部源::。如果鏈接 既不是文件也不是qrc,則鏈接被視爲外部鏈接。

還考慮使用QTextBrowser::setHtml來設置您的文本內容。

例子:

#include <QApplication> 

#include <QVBoxLayout> 
#include <QTextBrowser> 
#include <QMainWindow> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 
    QMainWindow w; 

    QTextBrowser* browser = new QTextBrowser(&w); 
    browser->setHtml("<a href=\"https://www.w3schools.com\">Visit W3Schools</a>"); 
    browser->setOpenExternalLinks(true); 
    w.setCentralWidget(browser); 

    w.show(); 

    return a.exec(); 
} 
+0

我有,這是行不通的,如果你想點擊的鏈接是HTML中的HREF我已經看到 – MadisonCooper

+0

@ChildishJack:這是行不通的。請編譯並運行提供的示例。它對我來說非常合適(點擊鏈接時我的瀏覽器就會啓動)。 – jpo38

+0

我已經基本上將這個網頁https://cms.mpi.univie.ac.at/vasp/vasp/vasp.html複製到瀏覽器中,我刪除了圖像。我編譯並測試了好幾次。 QT Creator相信打開的外部鏈接已啓用,但應用程序輸出'QFSFileEngine :: open:沒有指定文件名'。例如,頁面頂部附近的鏈接「1」在瀏覽器中運行,並在外部打開,但其他瀏覽器都無法打開。 – MadisonCooper