当前位置: 首页 > news >正文

连云港专业网站制作公司做dnf辅助官方网站

连云港专业网站制作公司,做dnf辅助官方网站,个人简介干净短句,网络营销方式介绍文章目录 1. 技术平台2. Qt pdf 模块3. cmake 使用模块4. 许可证5. 简单示例5.1 CMakeLists.txt5.2 main.cpp 6. 总结 1. 技术平台 项目说明OSwin10 x64Qt6.6compilermsvc2022构建工具cmake 2. Qt pdf 模块 Qt PDF模块包含用于呈现PDF文档的类和函数。 QPdfDocument 类加载P… 文章目录 1. 技术平台2. Qt pdf 模块3. cmake 使用模块4. 许可证5. 简单示例5.1 CMakeLists.txt5.2 main.cpp 6. 总结 1. 技术平台 项目说明OSwin10 x64Qt6.6compilermsvc2022构建工具cmake 2. Qt pdf 模块 Qt PDF模块包含用于呈现PDF文档的类和函数。 QPdfDocument 类加载PDF文档并根据QPdfDocumentRenderOptions类提供的选项从中呈现页面。QPdfPageRenderer 类管理一个队列该队列收集所有呈现请求。QPdfPageNavigator 类处理通过PDF文档的导航。QPdfSearchModel 类搜索字符串并保存搜索结果。QPdfBookmarkModel 类保存目录如果存在。QPdfLinkModel 保存有关页面上超链接的信息。QPdfView 小部件是一个完整的PDF查看器 PDF Viewer Widget Example 示例展示了如何使用它。 Qt Quick 部分略过不提 如果只需要呈现页面图像而不需要文本选择、搜索和导航等功能则该模块包含一个QImageIOHandler插件该插件将PDF视为可伸缩的图像格式类似于SVG。您可以简单地使用Image并将currentFrame属性设置为希望显示的页面索引。如果PDF文件不呈现其自己的背景则图像具有透明背景。 3. cmake 使用模块 find_package(Qt6 REQUIRED COMPONENTS Pdf PdfWidgets)target_link_libraries(mytarget Qt6::Pdf Qt6::PdfWidgets) 4. 许可证 Qt PDF在Qt公司的商业许可下可用。此外它在GNU较宽松通用公共许可证(版本3)或GNU通用公共许可证(版本2)下可用。有关此模块的更多详细信息请参阅Qt PDF许可。 5. 简单示例 5.1 CMakeLists.txt #CMakeLists.txtcmake_minimum_required(VERSION 3.5)project(QtPDF VERSION 0.1 LANGUAGES CXX)set(CMAKE_AUTOUIC ON) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets PdfWidgets Pdf) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets PdfWidgets Pdf)set(PROJECT_SOURCESmain.cpp )if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)qt_add_executable(QtPDFMANUAL_FINALIZATION${PROJECT_SOURCES}) # Define target properties for Android with Qt 6 as: # set_property(TARGET QtPDF APPEND PROPERTY QT_ANDROID_PACKAGE_SOURCE_DIR # ${CMAKE_CURRENT_SOURCE_DIR}/android) # For more information, see https://doc.qt.io/qt-6/qt-add-executable.html#target-creation else()if(ANDROID)add_library(QtPDF SHARED${PROJECT_SOURCES}) # Define properties for Android with Qt 5 after find_package() calls as: # set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android)else()add_executable(QtPDF${PROJECT_SOURCES})endif() endif()target_link_libraries(QtPDF PRIVATEQt${QT_VERSION_MAJOR}::WidgetsQt${QT_VERSION_MAJOR}::PdfWidgetsQt${QT_VERSION_MAJOR}::Pdf )# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. # If you are developing for iOS or macOS you should consider setting an # explicit, fixed bundle identifier manually though. if(${QT_VERSION} VERSION_LESS 6.1.0)set(BUNDLE_ID_OPTION MACOSX_BUNDLE_GUI_IDENTIFIER com.example.QtPDF) endif() set_target_properties(QtPDF PROPERTIES${BUNDLE_ID_OPTION}MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}MACOSX_BUNDLE TRUEWIN32_EXECUTABLE TRUE )include(GNUInstallDirs) install(TARGETS QtPDFBUNDLE DESTINATION .LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} )if(QT_VERSION_MAJOR EQUAL 6)qt_finalize_executable(QtPDF) endif() 5.2 main.cpp #include QtWidgets #include QtPdfWidgets #include qout.hppint main(int argc, char *argv[]) {QApplication a(argc, argv);QMainWindow w;// 分割器auto splitter new QSplitter(w);w.setCentralWidget(splitter);// PDF查看器控件auto *pdf_view new QPdfView(splitter);pdf_view-setPageMode(QPdfView::PageMode::MultiPage); // 多页浏览模式pdf_view-setZoomMode(QPdfView::ZoomMode::FitToWidth);// 适合宽度模式// QPdfDocument类 加载PDF文档并呈现页面auto pdf_doc new QPdfDocument(pdf_view);pdf_view-setDocument(pdf_doc);pdf_doc-load(E:/00_Download/Compressed/现代 C 教程高速上手 C 11_14_17_20.pdf);// QPdfBookmarkModel类 保存PDF文档中的链接树(锚点)例如目录。QPdfBookmarkModel *pdfBookmarkModel new QPdfBookmarkModel(splitter);pdfBookmarkModel-setDocument(pdf_doc);// 使用TreeView 来显示目录auto bookMarkTreeView new QTreeView(splitter);QFont serifFont(Times, 10, QFont::Normal);bookMarkTreeView-setModel(pdfBookmarkModel);bookMarkTreeView-setFont(serifFont);bookMarkTreeView-header()-hide();splitter-addWidget(bookMarkTreeView);splitter-addWidget(pdf_view);splitter-setStretchFactor(1,1); // pdf_view 获取最大的可用空间w.showMaximized();// 打印书签的角色名称qout pdfBookmarkModel-roleNames();qout pdfBookmarkModel-rowCount() pdfBookmarkModel-columnCount();auto index pdfBookmarkModel-index(0,0);qout index;qout pdfBookmarkModel-data(index,(int)QPdfBookmarkModel::Role::Title);qout pdfBookmarkModel-data(index,(int)QPdfBookmarkModel::Role::Level);qout pdfBookmarkModel-data(index,(int)QPdfBookmarkModel::Role::Page);qout pdfBookmarkModel-data(index,(int)QPdfBookmarkModel::Role::Location);qout pdfBookmarkModel-data(index,(int)QPdfBookmarkModel::Role::Zoom);QObject::connect(bookMarkTreeView,QTreeView::clicked,bookMarkTreeView,[pdf_view,pdfBookmarkModel](const QModelIndex index){QPdfPageNavigator* nav pdf_view-pageNavigator();auto page pdfBookmarkModel-data(index,(int)QPdfBookmarkModel::Role::Page).toInt();nav-jump(page, {}, nav-currentZoom());});return a.exec(); }6. 总结 Qt pdf 模块 底层使用的是PDFium库, 不知道是不是PDFium库的版本问题,在解析书签目录的时候,还是有点问题, 没有location,所以没必要深究这个模块,不是太理想
http://www.yutouwan.com/news/422715/

相关文章:

  • 网站站内内链建设建设网站的注意事项
  • html 网站源码 卖手机机关网站建设费入什么科目
  • 企业创建网站的途径都有啥酒店营销推广方案
  • 十堰市茅箭区建设局网站还能电子商务网站建设
  • 表白网站是怎么做的哪个平台建网站比较好
  • 计算机专业学做网站吗中国网站开发语言
  • 网站开发微信提现功能菜鸟怎样做自己的网站
  • 征婚网站咋做wordpress 评论系统
  • 广州 四合一网站开发网页游戏排行榜前十名大型网络游戏
  • 电子商务就是建网站数据库调用做wordpress
  • 做博客网站如何盈利中国建盏形象设计大赛获奖名单
  • 自己做网站赚钱案例网站制作 符合百度
  • 海外网站备案基于推荐算法的网站开发
  • 芙蓉区网站建设公司广州市官网网站建设平台
  • 高端网站建设哪家好成都h5网站建设
  • 做网站改版多少钱作品集设计
  • 嘉兴企业网站建设公司郑州网站建设msgg
  • 网站建设类课题的研究方法做网站推广好做吗
  • 河北制作网站模板建站公司阿里巴巴怎么做企业网站
  • 抽奖网站开发公司网站谁负责做
  • 网站开发qq群苏州保洁公司诗雨
  • 上海浦东新区做网站一个完整的品牌策划方案范文
  • 网站后台显示不全2016响应式网站模板
  • 中卫网站建设报价网站支付界面怎么做
  • 网站内链建设和外链的推广建设银行官网站下载地址
  • 电子商务网站建设的定义939网站建设
  • 河南制作网站个人博客网站开发历程
  • 郑州专门做网站国外卖货平台有哪些
  • 重庆建设科技培训中心官方网站seo zac
  • 只用django做网站网上卖货哪个平台比较好