Qt之主窗口设计——打印文本

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);
}

相关文章:

  • 2022-01-06
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2021-07-08
  • 2021-12-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-16
  • 2022-02-26
  • 2022-02-14
  • 2021-04-13
  • 2021-04-16
  • 2022-12-23
  • 2021-04-18
相关资源
相似解决方案