pos机打印程序例子,文本打印与光标定位

 新闻资讯2  |   2023-06-12 09:11  |  投稿人:pos机之家

网上有很多关于pos机打印程序例子,文本打印与光标定位的知识,也有很多人为大家解答关于pos机打印程序例子的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!

本文目录一览:

1、pos机打印程序例子

pos机打印程序例子

一、文本编辑器中的打印

1、QPlainTextEdit内部的文档结构

(1)、QPlainTextEdit通过QTextDocument对象存储文本数据

(2)、QPlainTextEdit本身只负责界面形态的显示

(3)、QPlainTextEdit内部有指针指向下面两个类

2、QTextDocument是表示文本以及文本属性的数据类

(1)、设置文本的属性:排版,字体,标题等

(2)、获取文本参数:行数、文本宽度、文本信息等

(3)、实现标准操作:撤销、重做、查找、打印等

3、打印功能的实现步骤

(1)、连接QAction打印对象的信号到槽函数

(2)、在槽函数中定义QPrintDialog对象

(3)、根据用户选择获取QPrinter对象

(4)、通过QTextDocument对象进行打印

void MainWindow::onFilePrint(){ QPrintDialog dlg(this); dlg.setWindowTitle("Print"); if(dlg.exec()==QPrintDialog::Accepted) { QPrinter* p = dlg.printer();//将参数设置进打印机 mainEdit.document()->print(p); }}二、光标位置的计算

1、思路

(1)、文本框对象的内部包含了QTextCursor对象

(2)、通过position() 成员函数获取当前光标的字符位置

(3)、根据光标的字符位置计算横轴坐标

(4)、当光标位置发生变化进行计算

2、算法流程描述

(1)、通过'\'字符的个数计算所在行

(2)、通过最后一个'\'字符的下标计算所在列

void MainWindow::onCursorPositionChanged(){ int pos = mainEdit.textCursor().position(); QString text = mainEdit.toPlainText();//获取编辑器中的内容 int ln = 0; int col = 0; int flag = -1; for(int i=0; i<pos; i++) { if(text[i] == '\') { ln++; flag = i; } } flag++;//如光标在第十一行的某个位置,那么一共有十个换行符,flag++就是在第十行最后一个位置(即最后一个光标所在位置) col = pos - flag;//用第十一行光标所在位置减去前十行的总数就得第十一行的字符个数,即纵坐标 statusLabel.setText("Ln: " + QString::number(ln+1)+ " Col: " + QString::number(col+1));}三、小结

(1)、QPlainTextEdit将数据和界面分开设计

(2)、QTextDocument用于存储数据信息

(3)、QTextCursor用于提供光标相关信息

(4)、可以通过光标的字符位置信息计算坐标

【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】

「链接」

以上就是关于pos机打印程序例子,文本打印与光标定位的知识,后面我们会继续为大家整理关于pos机打印程序例子的知识,希望能够帮助到大家!

转发请带上网址:http://www.poszjia.com/newsone/66718.html

你可能会喜欢:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 babsan@163.com 举报,一经查实,本站将立刻删除。