zoukankan      html  css  js  c++  java
  • Qt之主窗口设计——打印文本

    image

    printtext.h

    #ifndef PRINTTEXT_H
    #define PRINTTEXT_H
    
    #include <QtGui>
    
    
    class PrintText : public QMainWindow
    {
    	Q_OBJECT
    
    public:
    	PrintText(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~PrintText();
    
    	void createActions();
    	void createMenu();
    	void createToolBars();
    
    public slots:
    	void sl_Print();
    
    private:
    	QTextEdit *edtText;
    
    	QAction	*printerAction;
    	QMenu *fileMenu;
    	QToolBar *fileToolBar;
    	
    };
    
    #endif // PRINTTEXT_H
    

    printtext.cpp

    #include "printtext.h"
    #include <QFont>
    #include <QTextEdit>
    #include <QPrinter>
    #include <QTextDocument>
    #include <QPrintDialog>
    
    PrintText::PrintText(QWidget *parent, Qt::WFlags flags)
    	: QMainWindow(parent, flags)
    {
    	QFont f("ZYSong18030",12);
    	setFont(f);
    	setWindowTitle(tr("Printer"));
    
    	edtText = new QTextEdit(this);
    	setCentralWidget(edtText);
    
    	createActions();
    	createMenu();
    	createToolBars();
    
    	QFile file("QPrinter.txt");
    	if(file.open(QIODevice::ReadOnly | QIODevice::Text))
    	{
    		QTextStream textStream(&file);
    		while (!textStream.atEnd())
    		{
    			edtText->append(textStream.readLine());
    		}
    		file.close();
    	}
    }
    
    PrintText::~PrintText()
    {
    
    }
    
    void PrintText::sl_Print()
    {
    	QPrinter printer;
    	QPrintDialog	printDlg(&printer,this);
    	if(printDlg.exec())
    	{
    		QTextDocument *doc = edtText->document();
    		doc->print(&printer);
    	}
    }
    
    void PrintText::createActions()
    {
    	//"打印"动作
    	printerAction = new QAction(QIcon("images/print.png"),tr("print"),this);
    	printerAction->setShortcut(tr("Ctrl+P"));
    	printerAction->setStatusTip(tr("Print Text"));
    	connect(printerAction,SIGNAL(triggered()),this,SLOT(sl_Print()));
    }
    
    void PrintText::createToolBars()
    {
    	//文件工具栏
    	fileToolBar = addToolBar("File");
    	fileToolBar->addAction(printerAction);
    }
    
    void PrintText::createMenu()
    {
    	//文件菜单
    	fileMenu = menuBar()->addMenu("File");
    	fileMenu->addAction(printerAction);
    }
  • 相关阅读:
    shell入门-sed-2替换功能
    shell入门-sed-1
    shell入门-grep-3-egrep
    shell入门-grep2
    shell入门-grep过滤-1
    shell入门-连接符(并且、和、或者)
    shell入门-tr替换字符和split切割大文件
    shell入门-uniq去重复和tee重定向
    class类的相关操作 --| 公有普通方法 | 私有普通方法 | 无参方法 | 有参方法
    类的封装性-- | 成员属性 | 成员方法 | 私有属性 | 私有方法 之间调用
  • 原文地址:https://www.cnblogs.com/hanzhaoxin/p/2786373.html
Copyright © 2011-2022 走看看