pos機打印程序例子,文本打印與光標定位

 新聞資訊2  |   2023-06-12 09:11  |  投稿人:pos機之家

網上有很多關于pos機打印程序例子,文本打印與光標定位的知識,也有很多人為大家解答關于pos機打印程序例子的問題,今天pos機之家(www.shbwcl.net)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

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.shbwcl.net/newsone/66718.html

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。