Qt学习之路之文本打印
来源:互联网 发布:淘宝店铺怎么定位 编辑:程序博客网 时间:2024/06/06 03:45
本次的博文是 Qt学习之路之打开并显示文件内容文件 的后续~~~
有关文本打印的代码,请注意代码中的注释
打印文本在工作中经常使用,类QPrintDialog标准对话框提供了打印机的选择,配置功能等。
在开始前,请先设置工程文件,加入:QT += printsupport, 不然编译不会通过~~~
file_widget.h
#ifndef FILEWIDGET_H#define FILEWIDGET_H#include <QFileDialog>#include <QWidget>#include <QPushButton>#include <QLabel>#include <QHBoxLayout>#include <QFile>#include <QIODevice>#include <QTextEdit>#include <QVBoxLayout>#include <QTextStream>#include <QMessageBox>#include <QPrintDialog>//---文本打印新增#include <QPrinter>//--文本打印新增class FileWidget : public QWidget{Q_OBJECTpublic:explicit FileWidget(QWidget *parent = 0);public slots:void slotOpenFileDialog();//打开打开文件对话框void slotPrintText();//--文本打印新增 --------打印文本文件private:QPushButton *openBtn;QPushButton *printBtn;//---文本打印按钮QLabel *tipsLabel;QTextEdit *showText;};#endif//FILEWIDGET_Hfile_widet.cpp
#include "file_widget.h"FileWidget::FileWidget(QWidget *parent /*= 0*/) : QWidget(parent){//---按钮与label printBtn = new QPushButton("print", this);//---文本打印新增openBtn = new QPushButton("OPEN", this);connect(openBtn, SIGNAL(clicked()), this, SLOT(slotOpenFileDialog()));connect(printBtn, SIGNAL(clicked()), this, SLOT(slotPrintText()));//---文本打印新增tipsLabel = new QLabel("open file...", this);//----showTextshowText = new QTextEdit();//---按钮与label布局QVBoxLayout *vLayout = new QVBoxLayout();vLayout->addStretch();vLayout->addWidget(tipsLabel);vLayout->addWidget(openBtn);vLayout->addWidget(printBtn);//---文本打印新增vLayout->addStretch();vLayout->setSpacing(10);//---3个控件整体布局QHBoxLayout *hLayout = new QHBoxLayout(this);hLayout->addLayout(vLayout);hLayout->addWidget(showText);hLayout->setSpacing(10);hLayout->setContentsMargins(10, 2, 10, 2);//--显示布局setLayout(hLayout);//---窗口属性resize(400, 300);setWindowTitle("open file");}//------打开文件对话框void FileWidget::slotOpenFileDialog(){/*getOpenFileName函数说明函数原形: QStringList QFileDialog::getOpenFileNames(QWidget * parent = 0, const QString & caption = QString(),// 打开文件对话框的标题const QString & dir = QString(),//查找目录const QString & filter = QString(),// 设置需要过滤的文件格式QString * selectedFilter = 0, Options options = 0) [static]*///---获取文件名QString fileName = QFileDialog :: getOpenFileName(this, NULL, NULL, "*.h *.cpp *.txt");//---打开文件并读取文件内容QFile file(fileName);//--打开文件成功if (file.open(QIODevice ::ReadOnly | QIODevice ::Text)){QTextStream textStream(&file);while (!textStream.atEnd()){//---QtextEdit按行显示文件内容showText->append(textStream.readLine());}}else//---打开文件失败{/*information函数参数说明:函数原型QMessageBox::information(QWidget * parent, const QString & title,//--- 标题const QString & text,//---显示内容StandardButtons buttons = Ok,//---OK按钮StandardButton defaultButton = NoButton)[static]*/QMessageBox ::information(NULL, NULL, "open file error");}}//---打印文本void FileWidget::slotPrintText(){QPrinter printer;//--新建一个QPrinter对象QPrintDialog printDlg(&printer, this);if (printDlg.exec())//---用来判断用户是否点击了打印对话框上的“打印”按钮{//----获取文本内容QTextDocument *doc = showText->document();// ---打开打印对话窗口doc->print(&printer);}}
main.cpp
#include <QtWidgets/QApplication>#include "file_widget.h"int main(int argc, char *argv[]){QApplication a(argc, argv);FileWidget win;win.show();return a.exec();}
~~~~~~~~~笔者的机器上未连接任何打印设备,不能上最后的有关打印的效果截图了~~~~~~
~~~~~~若代码有错误,还请留言. 并指证~~~~ ^_^^_^
0 0
- Qt学习之路之文本打印
- Qt学习之路之图像打印
- Qt 文本编辑器之打印文档
- 《学习Qt之路2》笔记:Qt之文本对话框
- Qt学习之路之QTextStream读写文本
- qt之文本编辑器
- QT之文本编码
- Bluetooth Printer之文本打印
- QT学习之路
- QT学习之路
- QT学习之路
- QT 学习之路
- QT 学习之路
- QT学习之路
- Qt学习之路
- Qt学习笔记之日记本(文本编辑器)
- Qt之绘制闪烁文本
- QT之文本编辑器实现
- C++ Primer 第四版读书笔记(二)之标准库类型
- UVA - 531 Compromise
- 北京联想(我和小福的故事之三)
- Ubuntu-问题-如何打开terminal
- 数据中心(我和小福的故事之四)
- Qt学习之路之文本打印
- 常用的正则表达式
- 潘多拉的JS(我和小福的故事之一)
- USCO gold组刷水
- 红黑树
- 完美的架构(我和小福的故事之五)
- Apple Watch Icon and Image Design
- UVA 10465 Homer Simpson(完全背包)
- 2014年12月27日