引言
在QT5.3中,在.pro使用的是:QT += widgets gui axcontainer 来使用ActiveQt框架中的QAxContainer模块(Qt4版本添加Qt += qaxcontainer)=),所以在项目在头文件中包含QAxWidget和QAxObject。
简单介绍ActiveQt框架由两个模块组成:
QAxContainer模块允许我们使用COM对象并且可以在Qt应用程序中嵌入QActive控件。
QAxServer模块允许我们导出使用Qt编写的自定义的COM对象和Active控件。
一、word模板准备
模板的准备至关重要,而其中更重要的是模板中书签的设置命名,因为接下来的程序代码中,程序就是根据书签的名字,来定位word文档中的位置,从而进行数据的插入修改
当设计好表格,并且设计好书签的名称,便将文档保存为 .dot格式
二、WordDemo实现
代码中都有详尽的注释
1、mainwindow.ui
2、mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow; }
QT_END_NAMESPACE
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
void init_UI(); //初始化界面函数
void clear_UI(); //重置界面函数
private slots:
void reshow(); //重置界面的槽函数
void create_word(); //创建报表的槽函数
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
3、mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QAxObject>
#include <QAxWidget>
#include <QMessageBox>
#include <QFileDialog>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
init_UI();
connect(ui->btu_create,SIGNAL(clicked(bool)),this,SLOT(create_word()));
connect(ui->btu_create,SIGNAL(clicked(bool)), this, SLOT(reshow()</