Qt之预览WPS的word文件

本来的需求是在qt的UI界面中预览word文件,但找了半天也没有好的方法,操作和生成word文档的方法还挺多,但想要预览word文件,实在找不到。现在成功预览了WPS下的word文件,虽然我的项目用不上,还是记录如下。

 

在UI界面中添加frame控件。

1.pro文件

QT       += axcontainer

2.cpp文件

#include <QAxObject>
#include <QAxWidget>


    QString fileName = "D:\\111_202212050023.docx";

    officeContent_ = new QAxWidget("Word.Application",ui->frame);
    officeContent_->setProperty("Visible", false);//调用本地wps或者office 不显示
    officeContent_->dynamicCall("SetVisible (bool Visible)","false");
    officeContent_->setProperty("DisplayAlerts", false);//不显示任何警告信息
    officeContent_->setProperty("DisplayScrollBars", true);
    officeContent_->setGeometry(QRect(0,0,1500,1500));
    officeContent_->setControl(fileName);
    officeContent_->show();

3.存在的问题

可用在frame中显示WPS的word文件,但是关闭时关不掉WPS的后台程序。所有后续再编辑此word时,只能通过只读的方式。这个问题还没有解决。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用Poco中的Poco::Net::HTTPClientSession类来实现对Word文档的预览,具体步骤如下: 1. 创建一个Qt应用程序,并添加Poco库文件到项目中。 2. 在Qt中创建一个QWidget界面,用于显示文档预览。 3. 使用Poco::Net::HTTPClientSession类来向服务器请求Word文档的内容。 4. 将获取到的文档内容转换成Qt支持的格式,如QByteArray或QPixmap。 5. 将文档内容显示在QWidget界面中。 以下是一个基本的示例代码: ```cpp #include <QVBoxLayout> #include <QLabel> #include <QPixmap> #include <Poco/Net/HTTPClientSession.h> #include <Poco/URI.h> class WordPreviewWidget : public QWidget { public: WordPreviewWidget(const QString& url, QWidget* parent = nullptr) : QWidget(parent) { QVBoxLayout* layout = new QVBoxLayout(this); QLabel* label = new QLabel(this); layout->addWidget(label); Poco::URI uri(url.toStdString()); Poco::Net::HTTPClientSession session(uri.getHost(), uri.getPort()); Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_GET, uri.getPath(), Poco::Net::HTTPMessage::HTTP_1_1); Poco::Net::HTTPResponse response; session.sendRequest(request); std::istream& rs = session.receiveResponse(response); QByteArray data; char buffer[1024]; while (!rs.eof()) { rs.read(buffer, sizeof(buffer)); data.append(buffer, rs.gcount()); } QPixmap pixmap; pixmap.loadFromData(data); label->setPixmap(pixmap); } }; ``` 在使用该代码时,需要将url参数替换成实际的Word文档URL地址。另外,需要注意的是,该示例代码只支持文档内容为图片的情况,如果文档内容为其他格式,需要进行相应的转换处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kissgoodbye2012

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值