MuPDF-Qt 开源项目教程
1. 项目的目录结构及介绍
MuPDF-Qt 项目的目录结构如下:
mupdf-qt/
├── CMakeLists.txt
├── README.md
├── examples/
│ ├── qt-demo/
│ │ ├── main.cpp
│ │ ├── qt-demo.pro
│ │ └── resources/
│ │ └── example.pdf
│ └── qt-viewer/
│ ├── main.cpp
│ ├── qt-viewer.pro
│ └── resources/
│ └── example.pdf
├── include/
│ └── mupdf-qt/
│ ├── mupdf-document.h
│ ├── mupdf-page.h
│ └── mupdf-qt.h
├── src/
│ ├── mupdf-document.cpp
│ ├── mupdf-page.cpp
│ └── mupdf-qt.cpp
└── thirdparty/
└── mupdf/
目录结构介绍
CMakeLists.txt
: 用于构建项目的 CMake 配置文件。README.md
: 项目说明文档。examples/
: 包含示例程序的目录。qt-demo/
: 一个简单的 Qt 示例程序。qt-viewer/
: 一个功能更全面的 Qt 示例程序。
include/
: 包含项目头文件的目录。mupdf-qt/
: 包含与 MuPDF 相关的 Qt 头文件。
src/
: 包含项目源代码的目录。mupdf-document.cpp
: 处理文档的源文件。mupdf-page.cpp
: 处理页面的源文件。mupdf-qt.cpp
: 与 Qt 集成的源文件。
thirdparty/
: 包含第三方库的目录。mupdf/
: MuPDF 库的源代码。
2. 项目的启动文件介绍
项目的启动文件位于 examples/qt-demo/main.cpp
和 examples/qt-viewer/main.cpp
。
examples/qt-demo/main.cpp
#include <QApplication>
#include "MainWindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
examples/qt-viewer/main.cpp
#include <QApplication>
#include "ViewerWindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
ViewerWindow window;
window.show();
return app.exec();
}
这两个启动文件都包含了 QApplication
的实例化,并创建了主窗口实例,然后显示窗口并进入应用程序的事件循环。
3. 项目的配置文件介绍
项目的配置文件主要是 CMakeLists.txt
和 examples/qt-demo/qt-demo.pro
、examples/qt-viewer/qt-viewer.pro
。
CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(mupdf-qt)
set(CMAKE_CXX_STANDARD 11)
add_subdirectory(thirdparty/mupdf)
include_directories(include)
file(GLOB SRC_FILES src/*.cpp)
add_library(mupdf-qt ${SRC_FILES})
target_link_libraries(mupdf-qt mupdf)
add_subdirectory(examples/qt-demo)
add_subdirectory(examples/qt-viewer)
examples/qt-demo/qt-demo.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = qt-demo
TEMPLATE = app
SOURCES += main.cpp \
MainWindow.cpp
HEADERS += MainWindow.h
INCLUDEPATH += ../include
LIBS += -L../lib -lmupdf-qt
examples/qt-viewer/qt-viewer.pro
QT