从Mac OSX上的QT中的代码打开本地HTML文件



你好,我在Mac OSX上面临QT的小问题。

因此,在我的程序中,我试图打开与应用程序相同路径中的本地.html文件。

鉴于QT是跨平台,我对Windows和Ubuntu的尝试都起作用,我认为OSX不应该有问题,因为它是基于Unix的。

这是我的attmpet

void MainWindow::openBrowser(bool)
{
    QString link = QDir::currentPath()+"/index.html"; // rename the file
    if(! QDesktopServices::openUrl(QUrl(link.trimmed())))
    {
        displayMessage("Access Error", "Unable to open a file");
    }
}

OSX找不到相同的index.html文件,我不确定为什么。有没有更好的方法来加入路径?

在macOS上,QUrl使用FQ名称(file://absolute_file.name(进行工作,这应该是所有平台上的便携式语法。可以这样调用:

if(! QDesktopServices::openUrl(QUrl("file:" + link.trimmed()))) // windows does not like :// 
    {
        qDebug() << "Access Error", "Unable to open a file";
    }

尽管本地HTML文件不需要,但QT在Info.plist中使用此条目用于外部URL:

<key>NSAppTransportSecurity</key>
<!-- NOTE! For more information, see: https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33-->
<dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>

相关内容

  • 没有找到相关文章

最新更新