【问题标题】:How to open a link in a default user browser in Qt?如何在 Qt 的默认用户浏览器中打开链接?
【发布时间】:2012-05-02 06:45:01
【问题描述】:

我想知道如何使用 Qt 在默认用户浏览器中打开链接(这将在所有平台上打开它(Win Mac Lin))?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    在文档中:QDesktopServices

    http://doc.qt.io/qt-4.8/qdesktopservices.html#openUrl

    bool QDesktopServices::openUrl ( const QUrl & url ) [static]
    

    在适合用户桌面环境的 Web 浏览器中打开给定的 url,如果成功则返回 true;否则返回 false。

    【讨论】:

    • 直接将字符串作为该函数的参数是行不通的。要从字符串打开 URL,您需要像这样使用 QUrl() 函数:openUrl (QUrl("http://stackoverflow.com/"));
    • 我的回答建议在哪里直接使用字符串?你可以看到它说它需要一个 Url 对象来传递。
    • 我知道。我刚刚发布了该评论以帮助人们理解这一点。当我第一次看到它时,我以为我必须直接使用字符串,并且花了一些时间才明白事实并非如此。我只是想帮助其他有同样想法的人。
    • 由于某些原因,如果链接包含锚点,则它不起作用,例如doc.qt.io/qt-5/qwidget.html#QWidget
    【解决方案2】:

    你可以试试这个代码

    QString link = "http://www.google.com";
    QDesktopServices::openUrl(QUrl(link));
    

    阅读QDesktopServicesQUrl 以获取更多信息。

    【讨论】:

    • 不,这实际上是一个正确的 SO 风格答案,带有工作示例 openUrl 如何工作。无需去其他地方检查规格。
    • 别忘了在文件顶部添加#include <QDesktopServices>
    • 认为这是更好的答案。复制和粘贴 - 就可以了,谢谢!
    【解决方案3】:

    您正在桌面服务类中寻找 openUrl()

    http://qt-project.org/doc/qt-4.8/QDesktopServices.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-08
      • 2015-08-21
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 2018-12-10
      • 1970-01-01
      相关资源
      最近更新 更多