QTextDocument * QPlainTextEdit::document () const
在前面Qt 21 中有学到,打印对话框QPrintDialog类:
打印对话框QPrintDialog类
Qt中提供了预定义的打印对话框 QPrintDialog类,用于设置打印相关的参数信息
打印对话框使用方式
//构造打印对话框对象
QPrintDialog dlg(this);
//设置打印对话框的相关属性
dlg.setWindowTitle("Print Dialog");//标题
if( dlg.exec() == QPrintDialog::Accepted )
{
QPrinter* p = dlg.printer();
}
Qt中的QPrinter 类是打印设备及其参数的封装
QPrinter类封装了系统中打印设备的驱动接口
QPrinter以相同方式使用系统中的不同打印设备
使用:
//打印对话框对象
QPrintDialog dlg(this);
dlg.setWindowTitle("Print");
//显示打印对话框
if( dlg.exec() == QPrintDialog::Accepted )
{
//Qt中的QPrinter 类是打印设备及其参数的封装
//获取打印对象,通过打印对话框获取获取打印对象
QPrinter* p = dlg.printer();
//mainEditor.document()获取内部文档对象,调用print(p) 打印到打印对象
//QTextDocument * QPlainTextEdit::document () const
mainEditor.document()->print(p);
}
使用:
//获取光标所在字符位置
int pos = mainEditor.textCursor().position();
//获取文本框中字符串
QString text = mainEditor.toPlainText();
int col = 0;//列
int ln = 0;//行
int flag = -1;
for(int i=0; i<pos; i++)
{
if( text[i] == '\n' )
{
ln++;//行
flag = i;
}
}
flag++;
//列
col = pos - flag;
//状态栏标签显示行和列 QString::number 是将数数字(整数、浮点数、有符号、无符号等)转换为QString类型
statusLbl.setText("Ln: " + QString::number(ln + 1) + " Col: " + QString::number(col + 1));