如何解决Qt:使用poppler库打开qrc pdf
| 我使用poppler库显示pdf的函数遇到了一些麻烦。下面的代码是发生问题的函数。 const QString&file是文件的路径 int页面是必须打开的页面 当我将文件设置为真实路径时(例如\“ / Users / User / Documents / xxx.pdf \”),打开它没问题。但是,当我给出一个qrc文件的路径(\“:/ files / xxx.pdf \”)时,它将无法正常工作。我想用它来显示应用程序内的用户手册。 我还尝试过先用它制作一个QFile,将其打开并执行readAll,然后通过执行“ 0”来加载接收到的QByteArray,但是在以ReadOnly模式打开QFile时它已经出错。void class::setPdf(const QString &file,int page)
{
Poppler::Document *doc = Poppler::Document::load(file);
if (!doc) {
QMessageBox msgBox(QMessageBox::Critical,tr(\"Open Error\"),tr(\"Please check preferences: cannot open:\\n\") + file,QMessageBox::Ok,this);
msgBox.exec();
}
else{ /*Code for displaying the pdf,which works fine*/
}
}
我希望你能帮帮我,
问候,
马特
解决方法
我也尝试过先制作QFile
从中打开并执行
readAll,然后加载QByteArray
收到者
正在执行Poppler :: Document :: loadFromData(
qbytearray),但它已经出错
在ReadOnly中打开QFile时
模式。
QFile f;
f.setFileName(\":/skin/AppIcon16.png\");
f.open(QIODevice::ReadOnly);
QByteArray r=f.readAll();
从资源中完美读取所有数据,并进行了检查。所以我建议您在尝试时做错了。可能是路径错误,也许还有其他...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。