我的應用程序中有一個QTextBrowser,裏面充滿了HTML和許多href。我希望它們可點擊並打開默認應用程序以轉到該網頁 - 我看到了this answer,但我不知道應該在默認樣式表中添加什麼來完成此操作。QT打開HREF鏈接
鏈接到HTML源:https://pastebin.com/ApSm296G
因爲我要縮進的東西來發布引擎收錄鏈接:
foo
bar
我的應用程序中有一個QTextBrowser,裏面充滿了HTML和許多href。我希望它們可點擊並打開默認應用程序以轉到該網頁 - 我看到了this answer,但我不知道應該在默認樣式表中添加什麼來完成此操作。QT打開HREF鏈接
鏈接到HTML源:https://pastebin.com/ApSm296G
因爲我要縮進的東西來發布引擎收錄鏈接:
foo
bar
沒有必要在這裏使用任何樣式表/ CSS的東西。
要獲取QTextBrowser::setOpenExternalLinks(true)
然後,as documented,QTextBrowser
將則:
自動打開鏈接使用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();
}
我有,這是行不通的,如果你想點擊的鏈接是HTML中的HREF我已經看到 – MadisonCooper
@ChildishJack:這是行不通的。請編譯並運行提供的示例。它對我來說非常合適(點擊鏈接時我的瀏覽器就會啓動)。 – jpo38
我已經基本上將這個網頁https://cms.mpi.univie.ac.at/vasp/vasp/vasp.html複製到瀏覽器中,我刪除了圖像。我編譯並測試了好幾次。 QT Creator相信打開的外部鏈接已啓用,但應用程序輸出'QFSFileEngine :: open:沒有指定文件名'。例如,頁面頂部附近的鏈接「1」在瀏覽器中運行,並在外部打開,但其他瀏覽器都無法打開。 – MadisonCooper
你爲什麼用CSS標籤這個?爲什麼您的標題talkes約樣式表?你的'QTextBrowser'只顯示一個html內容? – jpo38
@ jpo38如果您閱讀鏈接的答案,他們說可以通過CSS完成。 – MadisonCooper