增加:打印功能

This commit is contained in:
sonichy 2018-04-27 11:38:30 +08:00
parent 7851de1e8b
commit 8759a426ca
5 changed files with 54 additions and 9 deletions

BIN
HTYEdit

Binary file not shown.

View File

@ -1,10 +1,4 @@
#-------------------------------------------------
#
# Project created by QtCreator 2017-01-10T08:44:15
#
#-------------------------------------------------
QT += core gui
QT += core gui printsupport
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

View File

@ -15,6 +15,9 @@
#include <QFontDialog>
#include <QMimeData>
#include <QTextBrowser>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
#include <QPainter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
@ -66,7 +69,7 @@ void MainWindow::on_action_aboutQt_triggered()
void MainWindow::on_action_about_triggered()
{
QMessageBox aboutMB(QMessageBox::NoIcon, "关于", "海天鹰编辑器 1.1\n一款基于 Qt 的文本编辑程序。\n作者:黄颖\nE-mail: sonichy@163.com\n主页sonichy.96.lt\n参考文献:\nQMdiArea基本用法http://www.mamicode.com/info-detail-1607476.html\n多文档编辑器http://www.qter.org/?page_id=161\n保存文本http://blog.csdn.net/neicole/article/details/7330234\n语法高亮http://www.cnblogs.com/lenxvp/p/5475931.html\n拖放打开文件http://blog.csdn.net/rl529014/article/details/53057577");
QMessageBox aboutMB(QMessageBox::NoIcon, "关于", "海天鹰编辑器 1.2\n\n一款基于 Qt 的文本编辑程序。\n作者:黄颖\nE-mail: sonichy@163.com\n主页sonichy.96.lt\n参考文献:\n多文档编辑器http://www.qter.org/?page_id=161\nQMdiArea基本用法http://www.mamicode.com/info-detail-1607476.html\n保存文本http://blog.csdn.net/neicole/article/details/7330234\n语法高亮http://www.cnblogs.com/lenxvp/p/5475931.html\n拖放打开文件http://blog.csdn.net/rl529014/article/details/53057577");
aboutMB.setIconPixmap(QPixmap(":/icon.png"));
aboutMB.setWindowIcon(QIcon(":/icon.png"));
aboutMB.exec();
@ -74,7 +77,7 @@ void MainWindow::on_action_about_triggered()
void MainWindow::on_action_changelog_triggered()
{
QString s = "1.1\n2017-10\n增加获取文本编码(使用 file --mime-encoding 命令返回),但是没有解决乱码问题。\n排版实验。\n用文本框代替消息框显示更新日志。\n2017-07\n增加拖放打开文件。\n2017-06\n增加语法高亮。\n提取打开文件的相对路径使Markdown预览能够载入相对路径图片。\n\n1.0\n2017-03\n支持命令行打开文件和打开方式打开文件。\n查找窗口填入选中文本。\n2017-02\n根据文件扩展名选择语法高亮方案。\nJS语法高亮实验成功\nHTML语法高亮实验成功\n增加设置字体。\n设置状态栏左右边距。\n2017-01\n实现全部替换。\n设置循环查找。\n增加查找替换窗体和功能。\n根据文件扩展名决定是否使用默认程序打开如htm。\n优化保存、另存为和文本修动标题标记逻辑。\n增加撤销,重做,子窗标题文本改动标识。\n增加子窗体类实现Ctrl+滚轮缩放和保存打开文件的路径。\n增加使用默认程序预览文件。\n把上一个打开或保存的路径设置为打开或保存对话框的默认路径和文件名。\n增加放大、缩小。\n增加文本光标变化信号,光标所在行列显示在状态栏第二栏。\n状态栏分为2栏\n修复没有子窗口时预览引起的崩溃。\n增加预览功能。\n保存成功。\n修改字体颜色,背景色成功。\n新建文件成功,打开文件载入成功。\n选用QMdiArea作为主控件增加窗口标签、平铺、层叠菜单。 \n制作主要菜单。";
QString s = "1.2\n2018-04\n增加打印功能。\n1.1\n2017-10\n增加获取文本编码(使用 file --mime-encoding 命令返回),但是没有解决乱码问题。\n排版实验。\n用文本框代替消息框显示更新日志。\n2017-07\n增加拖放打开文件。\n2017-06\n增加语法高亮。\n提取打开文件的相对路径使Markdown预览能够载入相对路径图片。\n\n1.0\n2017-03\n支持命令行打开文件和打开方式打开文件。\n查找窗口填入选中文本。\n2017-02\n根据文件扩展名选择语法高亮方案。\nJS语法高亮实验成功\nHTML语法高亮实验成功\n增加设置字体。\n设置状态栏左右边距。\n2017-01\n实现全部替换。\n设置循环查找。\n增加查找替换窗体和功能。\n根据文件扩展名决定是否使用默认程序打开如htm。\n优化保存、另存为和文本修动标题标记逻辑。\n增加撤销,重做,子窗标题文本改动标识。\n增加子窗体类实现Ctrl+滚轮缩放和保存打开文件的路径。\n增加使用默认程序预览文件。\n把上一个打开或保存的路径设置为打开或保存对话框的默认路径和文件名。\n增加放大、缩小。\n增加文本光标变化信号,光标所在行列显示在状态栏第二栏。\n状态栏分为2栏\n修复没有子窗口时预览引起的崩溃。\n增加预览功能。\n保存成功。\n修改字体颜色,背景色成功。\n新建文件成功,打开文件载入成功。\n选用QMdiArea作为主控件增加窗口标签、平铺、层叠菜单。 \n制作主要菜单。";
QDialog *dialog = new QDialog;
dialog->setWindowTitle("更新历史");
dialog->setFixedSize(400,300);
@ -444,3 +447,29 @@ void MainWindow::subWindowActivate(QMdiSubWindow *window)
LS3->setText("");
}
}
void MainWindow::on_action_print_triggered()
{
QPrinter printer(QPrinter::HighResolution);
QPrintDialog dialog(&printer, this);
if (dialog.exec() == QDialog::Accepted){
printDocument(&printer);
}
}
void MainWindow::on_action_printPreview_triggered()
{
QPrinter printer(QPrinter::HighResolution);
QPrintPreviewDialog preview(&printer, this);
connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printDocument(QPrinter*)));
preview.exec();
}
void MainWindow::printDocument(QPrinter *printer)
{
if (ui->mdiArea->currentSubWindow() != 0) {
MdiChild *child = (MdiChild*)(ui->mdiArea->currentSubWindow()->widget());
child->print(printer);
}
}

View File

@ -6,6 +6,7 @@
#include <QMainWindow>
#include <QDragEnterEvent>
#include <QMdiSubWindow>
#include <QPrinter>
namespace Ui {
class MainWindow;
@ -37,6 +38,8 @@ private slots:
void on_action_close_triggered();
void on_action_save_triggered();
void on_action_saveas_triggered();
void on_action_print_triggered();
void on_action_printPreview_triggered();
void on_action_changelog_triggered();
void on_action_aboutQt_triggered();
void on_action_about_triggered();
@ -57,6 +60,7 @@ private slots:
void replaceAll();
void cursorPositionChange();
void subWindowActivate(QMdiSubWindow *window);
void printDocument(QPrinter *printer);
};
#endif // MAINWINDOW_H

View File

@ -73,6 +73,8 @@
<addaction name="action_close"/>
<addaction name="action_save"/>
<addaction name="action_saveas"/>
<addaction name="action_print"/>
<addaction name="action_printPreview"/>
<addaction name="action_quit"/>
</widget>
<widget class="QMenu" name="menu_2">
@ -316,6 +318,22 @@
<string>字体</string>
</property>
</action>
<action name="action_print">
<property name="text">
<string>打印</string>
</property>
<property name="shortcut">
<string>Ctrl+P</string>
</property>
</action>
<action name="action_printPreview">
<property name="text">
<string>打印预览</string>
</property>
<property name="shortcut">
<string>Ctrl+Shift+P</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>