2017-05-31 47 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