Qt/Qml 电子书阅读器

Intro

目标: 开源阅读器

  • 全平台(包括Web)
  • 支持常见书籍格式(txt, epub, mobi, pdf等)
  • 实现主流阅读器基本功能
  • Text书籍支持编辑与写作

进度

目前的实现采取将文本绘制到图片上的方式, 一些翻页特效通过像素操作完成, 效果一般. 主要类结构如下

BookView (继承自QQuickPaintedItem, 主显示部件)

AbstractBookModel
 ├ TextBookModel
 ├ EpubBookModel
 ├ PdfBookModel
 └ ...

AbstractBookDelegate
 ├ SinglePageDelegate (单页)
 │  ├ SlideDelegate (滑动)
 │  └ CurlDelegate (仿真)
 └ ...

BookView + TextBookModel + SlideDelegate/CurlDelegate

TextBookModel {
    id: textBookModel
    size: Qt.size(300, 450)
    font {
        family: "Microsoft YaHei Mono"
        pointSize: 12
        bold: true
    }
    backgroundColor: "#d4c4a0"
    textColor: "#2f2202"
}
SlideEffect {
    id: slideEffect
}
CurlEffect {
    id: curlEffect
}
BookView {
    id: bookView
     300
    height: 450
    model: textBookModel
    effect: curlEffect
}

效果如下

由于直接进行了像素操作, 仿真特效有明显锯齿.
原文地址:https://www.cnblogs.com/maoruimas/p/13403378.html