qt 之拖放操作-打印文档

Qt应用程序主窗口:拖放操作与打印文档 书中还有一个在窗口中拖动图片的例子,就是在窗口中有一个图片,可以随意拖动它。这里需要使用到自定义的MIME类型。(项目源码路径:src\05\5-8\imageDrag|Drop)。这里由于篇幅原因,就不再详细说明了。 阅读详情
{
    ui->setupUi(this);

    QAction *acton_print = new QAction("打印",this);
    QAction *acton_printPreview = new QAction("打印预览",this);
    QAction *acton_pdf = new QAction("生成pdf",this);

    connect(acton_print,&QAction::triggered,this,&MainWindow::doPrint);
    connect(acton_printPreview,&QAction::triggered,this,&MainWindow::doPrintPreview);
    connect(acton_pdf,&QAction::triggered,this,&MainWindow::createPdf);

    ui->mainToolBar->addAction(acton_print);
    ui->mainToolBar->addAction(acton_printPreview);
    ui->mainToolBar->addAction(acton_pdf);
}

MainWindow::~MainWindow()
{
    delete ui;
}

//打印
void MainWindow::doPrint()
{
    QPrinter printer;//创建打印机对象
    QPrintDialog dlg(&printer,this);//创建打印对话框
    //如果编辑器中有选中区域,则打印选中区域
    if(ui->textEdit->textCursor().hasSelection())
        dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection);
    if(dlg.exec() == QDialog::Accepted)//如果对话框中按下打印按钮
        ui->textEdit->print(&printer);//则执行打印操作
}

//打印预览
void MainWindow::doPrintPreview()
{
    QPrinter printer;
    QPrintPreviewDialog preview(&printer,this);//创建打印预览对话框
    //当要生成预览页面时,发射paintRequested()信号
    connect(&preview,&QPrintPreviewDialog::paintRequested,this,&MainWindow::printPreview);
    preview.exec();
}

//预览页面的内容生成
void MainWindow::printPreview(QPrinter *printer)
{
    ui->textEdit->print(printer);//则执行打印操作
}

//生成pdf
void MainWindow::createPdf()
{
    QString fileName = QFileDialog::getSaveFileName(this,"导出PDF文件",QString(),"*.pdf");
    if(!fileName.isEmpty())
    {
        if(QFileInfo(fileName).suffix().isEmpty())
            fileName.append(".pdf");
        QPrinter printer;
        printer.setOutputFormat(QPrinter::PdfFormat);//指定输出格式为pdf
        printer.setOutputFileName(fileName);
        ui->textEdit->print(&printer);
    }
}

 

QPrintPreviewDialog 打印预览使用实例 qt打印机预览实用demo 阅读详情

相关推荐

20、Qt 中的打印与拖放功能详解

本文详细介绍了Qt中的打印与拖放功能。在打印方面,涵盖了单页和多页打印的实现方法,包括使用QTextDocument进行HTML渲染和手动分页绘图两种策略;在拖放方面,讲解了如何启用拖放、支持自定义MIME类型以及复用拖放逻辑处理剪贴板操作。文章还对比了不同方法的优缺点,并提供了实际应用建议,帮助开发者根据需求选择合适的技术方案。

snow3的博客 67

Qt打印功能;QPrintPreviewWidget使用;QPrintDialog使用;QPrintPreviewDialog使用;

一、QPrintDialog使用 在需要使用的地方直接使用: QPrinter printerpng;//创建一个打印机 QPrintDialog dlg(&printerpng);//创建打印页面,并传入打印机 qDebug()<<dlg.exec();//显示打印界面,返回值判断点击的是0表示取消,1表示打印 //界面显示后,可以通过printerpng获取设置的打印页面信息 qDebug()<<"打印页面设置的纸张页面布局:

qq_36626674的博客 9568

qt打印功能

qt打印功能,通过Qt现有类,打印驱动,直接调用打印。

17-窗口、窗口控件、对话框以及相关功能类-打印对话框和打印预览

QAbstractPrintDialog类为用于配置打印机的打印对话框提供了一个基本实现此类实现getter和setter函数,这些函数用于自定义打印对话框中显示的设置,但不直接使用。使用QPrintDialog在应用程序中显示打印对话框。

***** 1619

Qt 打印图片 打印机 例程

# QT_Printer QT开发的调用打印机打印图片的程序,代码比较简单,注释清晰,适合初学者学习使用。 开发环境:windows+QT5.9

Qt:textEdit转PDF和打印

适用于mac系统,可实现textEdit中内容转为PDF和打印预览功能。

只借助QPrintPreviewDialog就能实现PySide6的打印预览、打印纸质报表、导出为PDF文件的功能

只需要在代码中增加两个函数,就能借助QPrintPreviewDialog实现PySide6的打印预览、打印纸质报表、导出为PDF文件的功能。

晨辉软件的专栏 1754

Unity AR开发实战:从Vuforia图片识别到实体识别全流程解析

增强现实(AR)技术通过计算机视觉算法将虚拟信息叠加到现实世界,其核心原理在于对现实环境的感知与理解。在移动端AR开发中,图像识别与物体识别是实现虚实融合的关键技术,它们决定了虚拟内容能否准确、稳定地与现实对象对齐。Vuforia作为成熟的商业AR SDK,为开发者提供了从平面图像识别(Image Target)到三维实体识别(Model Target)的完整解决方案,极大降低了计算机视觉技术的应用门槛。在工程实践中,Vuforia通过封装复杂的特征提取与匹配算法,使开发者能够专注于交互设计与内容制作,广泛

weixin_30972263的博客 301

Qt——day02

文章目录一、QMainWindow1.菜单栏1.1 创建菜单栏1.2 往菜单栏添加菜单1.3 往某个菜单添加菜单动作1.4 在菜单项间增加分割线1.5 菜单栏数量问题2.工具栏2.1 创建工具栏对象2.2 改变工具栏的默认位置2.3 设置工具栏运行停靠的位置2.4 设置工具栏浮动2.5 设置工具栏移动性2.6 往工具栏添加工具2.7 工具栏数量问题3. 状态栏3.1 状态栏的数量3.2 往状态栏添加部件4. 铆接部件(浮动窗口)4.1 添加浮动窗口5. 核心部件(中心部件)6.资源文件6.1 准备好外部的资

qq_43403759的博客 2878

推荐系统:NDCG评价指标及其Python实现方法

除了推荐任务,在二分类任务中,也可以计算该指标,代码如下: # ndcg def get_dcg(y_pred, y_true, k): #注意y_pred与y_true必须是一一对应的,并且y_pred越大越接近label=1(用相关性的说法就是,与label=1越相关) df = pd.DataFrame({"y_pred":y_pred, "y_true":y_true}) ...

lanyuelvyun的博客 8242

寻迹Arduino智能小车

Arduino巡线寻迹智能小车

Rachael_Wang的博客 1万+

Qt应用程序主窗口之二:拖放操作与打印文档

一、拖放操作 对于一个实用的应用程序,不仅希望能从文件菜单中打开一个文件,更希望可以通过拖动直接将桌面上的文件拖入程序界面上来打开,就像可以将.pro文件拖入Creator中来打开整个项目一样。Qt中提供了强大的拖放机制,可以在帮助中查看 Drag and Drop 关键字来了解。拖放操作分为拖动(Drag)和放下(Drop)两种操作。 数据拖动时会被存储为 MIME(Multipurp...

weixin_30914981的博客 190

LVGL多线程编程避坑指南:从音乐播放器项目看UI与后台任务如何安全协作

本文深入探讨LVGL在多线程环境下的安全协作问题,以音乐播放器项目为例,解析UI与后台任务(如mplayer音频播放器)的典型冲突场景。提供全局互斥锁规范、任务队列异步处理等核心策略,并分享mplayer进程集成方案与进度条优化技巧,帮助开发者规避界面卡顿、内存损坏等常见问题。

weixin_42531494的博客 133

QT creator使用(五):应用程序主窗口QMainWindow

通过学习这一章,读者要掌握主窗口各个部件的使用,能够自行开发出一个简单的 基于QMain Window的程序。另外,本章还涉及了资源文件的使用以及信号、槽的设计,这些都是开发Qt程序的基础。 富文本处理是一个庞大的体系,这里不可能讲到每一个细节,所以还需要结合帮助文档多加练习。最后的拖放操作和打印文档等内容,也可以等到使用时再去学习。...

qq_41694024的博客 5535

【TCAX相关】Python 官方手册下载页面(中文+英文)

Python 官方手册下载页面(中文+英文) 中文: https://docs.python.org/zh-cn/3.8/archives/ https://docs.python.org/zh-cn/3.6/archives/ 英文: https://www.python.org/doc/versions/ https://docs.python.org/3/archives/ https://www.python.org/ftp/python/doc/ ...

Seekladoom的博客 1012

【七】Hadoop3.3.4基于ubuntu24的分布式集群安装

本次安装实验基于苹果m2芯片的mac系统,使用vmware fusion搭建三台ubuntu24分布式虚拟机,确保在三台机器上安装了Java jdk8,并配置了免密码登录,网络互通,防火墙关闭,授时服务器已经同步。访问apche官网源,下载3.3.4版本,我们用二进制通用版即可,因为hadoop运行在java环境,跨平台性使得无需编译arm架构版本。至此,Hadoop的安装完成,包括hdfs文件存储系统,mapreduce计算框架,yarn资源管理系统均能正常、稳定使用。

qq_31412425的博客 2161

QT学习笔记二

布局管理 布局管理器 基本布局管理器 栅格布局管理器 表单布局管理器 分裂器 设置伙伴 应用程序主窗口 主窗口框架 富文本处理 富文本文档结构 文本块 表格、列表和图片 语法高亮 HTML 拖放操作 打印文档 布局管理 布局管理器 Qt中主要提供了QLayout类及其子类来作为布局管理器 当部件加入到一个布局管理器中,然后这个布局管理器再放到一个窗口部...

月寒日暖的博客 301

在虚拟机中对阿克曼转向车进行导航及避障的仿真测试

一、    在我使用rosdep install teb_local_planner去安装teb_local_planner的时候,报错:Command ‘rosdep’ not found, but can be installed with:sudo apt install python3-rosdep2    我花大半个月好不容易建立起的一系列ROS环境,被python3-rosdep2这条万恶的语句连同ROS一起给我删了。。。悲伤来的那么猝不及防    随着ROS版本的迭代,相关资料很多都不再适用

慕羽★的博客 3807

Qt Creator快速入门 第三版 第5章 应用程序主窗口

hejiang88的博客 48

YOLOv7独家原创改进:多种新颖的改进方式 | 保持原始信息-深度可分离卷积(MDSConv) | 全局感受野的空间金字塔 (Improve-SPPF)算法 | CA注意力改进版

多种新颖的改进方式 | 保持原始信息-深度可分离卷积(MDSConv) | 全局感受野的空间金字塔 (Improve-SPPF)算法 | CA注意力改进版

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 1667

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Qt 6: 1-7 富文本处理器

富文本处理器

qq_35922704的博客 818

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

5.QT应用程序主窗口

新建Qt Widgets项目myaction,其余默认右键项目名,新建C++类如下运行结果:输入后回车,显示文字在文本编辑器中直接敲代码,然后运行(代码见文末链接)

BDS的朝圣路 932

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Qt拖放操作和打印操作

Qt 拖放操作和打印操作1. 拖放操作1.1 使用拖放打开文件1.2 自定义拖放操作2. 打印操作 1. 拖放操作 1.1 使用拖放打开文件 1.2 自定义拖放操作 2. 打印操作

MechMaster 1441

Qt学习:文本图片自定义拖放操作及界面打印输出PDF文件

本文主要讲述了Qt中的拖放操作以及打印输出PDF文件功能的实现。

XCJandLL的博客 1802

QT开发(三十一)——NotePad实例开发

QT开发(三十一)——NotePad实例开发一、界面开发NotePad使用主窗口作为顶层窗口组件,使用QMainWindow作为基类,QMainWindow内部封装了菜单栏、工具栏、中央组件、停靠组件、状态栏等。QMainWindow内置了布局管理器,基本的组件布局如下:使用二阶构造模式构建NotePad界面。MainWindow::MainWindow() ...

weixin_33982670的博客 717
上一篇: qt 之拖放操作-自定义拖放操作
下一篇: QT MFC 控件随窗口大小改变而改变
__网瘾少年
博客等级 码龄11年 122粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值