ChatGPT解决这个技术问题 Extra ChatGPT

如何在 Qt 的默认用户浏览器中打开链接?

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


F
ForestPhoenix

在文档中:QDesktopServices

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

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

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


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

你可以试试这段代码

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

阅读 QDesktopServicesQUrl 以获取更多信息。


不,这实际上是一个正确的 SO 风格答案,其中包含 openUrl 如何工作的工作示例。无需去其他地方检查规格。
不要忘记将 #include <QDesktopServices> 添加到文件顶部
认为这是更好的答案。复制和粘贴——就可以了,谢谢!
N
Nathan Boyd

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

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