Qt 一个简单的word文档编辑器
1.先看效果图
可以设置文字的属性、文字颜色、字体类型。以下示例仅供参考,有的地方还是不完善。
2.需要用到的类
2.1字体选择下拉框:QFontComboBox。
QFontComboBox是一个让用户选择字体的组合框。组合框中填充了按字母顺序排列的字体族名称列表。
常用方法:
获取当前的字体
QFont currentFont() const
还有一个信号,当字体发生改变时,发送信号。
void currentFontChanged(const QFont &font)
2.2颜色对话框:QColorDialog
常用方法:
获取当前选择的颜色
QColor currentColor() const
2.3QTextCharFormat
QTextCharFormat类为QTextDocument中的字符提供格式化信息。换句话说,我们要设置鼠标选中字体的属性,就需要使用这个类。
本例子中使用的方法:
void setFont(const QFont &font) | 设置字体 |
void setFontItalic(bool italic) | 设置是否斜体 |
void setFontStrikeOut(bool strikeOut) | 设置删除线 |
void setFontUnderline(bool underline) | 设置下划线 |
3.源码
为了方便,我定义了5个全局变量
bool isBold = false; //是否粗体
bool isUnderLine = false; //是否下划线
bool isDelLine = false; //是否删除线
bool isLean = false; //是否斜体QColor color(Qt::black); //字体颜色
设置斜体、粗体等按钮可选中,因为默认是不可选中的,我们需要绑定可选中的信号。
ui->btnBold->setCheckable(true);ui->btnDelLine->setCheckable(true);ui->btnLean->setCheckable(true);ui->btnUnderline->setCheckable(true);
绑定按钮的信号
void clicked(bool checked = false)
#include "WTextEdit.h"
#include "ui_WTextEdit.h"
#include <QColorDialog>
#include <QTextDocument>
#include <QTextCursor>
#include <QTextCharFormat>
#include <QFont>
#include <QBrush>bool isBold = false; //是否粗体
bool isUnderLine = false; //是否下划线
bool isDelLine = false; //是否删除线
bool isLean = false; //是否斜体QColor color(Qt::black); //字体颜色WTextEdit::WTextEdit(QWidget *parent) :QWidget(parent),ui(new Ui::WTextEdit)
{ui->setupUi(this);ui->btnBold->setCheckable(true);ui->btnDelLine->setCheckable(true);ui->btnLean->setCheckable(true);ui->btnUnderline->setCheckable(true);
}WTextEdit::~WTextEdit()
{delete ui;
}void WTextEdit::on_btnBold_clicked(bool checked)
{isBold = checked;updateText();
}void WTextEdit::on_btnLean_clicked(bool checked)
{isLean = checked;updateText();
}void WTextEdit::on_btnUnderline_clicked(bool checked)
{isUnderLine = checked;updateText();
}void WTextEdit::on_btnDelLine_clicked(bool checked)
{isDelLine = checked;updateText();
}void WTextEdit::updateText()
{QFont font = ui->fontComboBox->currentFont();font.setBold(isBold);font.setPointSize(ui->lineEdit->text().toInt());QTextCharFormat format;format.setFont(font);format.setFontItalic(isLean);format.setFontStrikeOut(isDelLine);format.setFontUnderline(isUnderLine);QPen pen;pen.setColor(color); //设置字体颜色format.setTextOutline(pen);ui->textEdit->textCursor().setCharFormat(format);
}void WTextEdit::on_btnColor_clicked()
{QColorDialog dialog;dialog.exec();color = dialog.currentColor();updateText();
}void WTextEdit::on_lineEdit_textChanged(const QString &arg1)
{updateText();
}void WTextEdit::on_fontComboBox_currentFontChanged(const QFont &f)
{updateText();
}
Qt 一个简单的word文档编辑器相关推荐
- Aspose.Words简单生成word文档
Aspose.Words简单生成word文档 Aspose.Words.Document doc = new Aspose.Words.Document(); Aspose.Words.Documen ...
- 一个简单的XML文档例子
一个简单的XML文档例子: <?xml version="1.0"?> <note> <to>Tove</to> <from& ...
- 【itext学习之路】--1.创建一个简单的pdf文档
来源:https://blog.csdn.net/tomatocc/article/details/80666011 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文 ...
- 简单合并word文档(转)
简单合并word文档(转) 将多个Word文档合并为大文档Word文档是目前最常用的一种数据文档,所以研究Word文档的合并具有比较现实的意义. 首先强调一点,就是由于Word本身的强大功能,合并Wo ...
- 自己用js做的在线word文档编辑器oarword-doc/docx文档编辑、导出导出
分享自己用js做的在线word文档编辑器oarword 支持基本doc/docx文档编辑,导出和导出,类似google docs和zoho 源码分享在Github:https://github.com ...
- Qt使用html生成word文档
Qt使用html生成word文档 零.前言 一.效果图 二.核心代码 零.前言 项目中要用到把一些图片和一些报告保存为word文件,今天研究了一下,主要是使用html方法保存为word文档,这对htm ...
- html打开一个存在的word文档,html怎么打开本地的Word文档
1 回答 2021-03-19 浏览:0 分类:办公入门 回答:1. 有关PDF: PDF(Portable Document Format的简称,意为"便携式文档格式"),是由A ...
- Qt5编写一个记事本(多文档编辑器)
目录 一.准备工作 1.1创建工程 1.2创建资源文件(myimages.qrc) 1.3创建界面文件(mainwindow.ui) 二.实现功能 1.1新建c++class类 1.2 MainWin ...
- 一张表格分成两页打印_一个表格在Word文档里被分成两页,要怎么合并为一页...
两页表格合并为一页可以通过调整表格每行的宽度,调整页面边距,或者通过调整表格以上的内容,可以将上面文字内容减少或者调整行距,使下页的表格能上移.具体操作如下: 1.打开word文档后,我们依次点击[页 ...
最新文章
- maven repository
- 【Python科学计算系列】概率论与数理统计
- Java JUC工具类--CyclicBarrier
- php csv to array (csv 转数组)
- python笔记05_多线程
- servlet中文数据存入数据库为乱码的解决办法
- 404 错误页面:重装上阵
- 套接字的作用与一般使用_05 | 使用套接字进行读写
- python连接服务器informix_Python 用odbc连接Informix数据库 64位
- 华为android出现短路怎么办,华为手机无法开机原因解析及解决方法
- ubuntu下载字体
- 微信小程序——云开发实现图片上传到云存储并实时预览当前上传的图片
- 坚果云android功能,坚果云是什么有什么功能_坚果云相关功能作用介绍_3DM手游
- Bootstrap框架快速上手
- winxp下用ssh控制 linux 服务器
- torchaudio::is_sox_available关于使用pyinstaller 编译的问题
- ie的js调试工具companion.js使用方法
- 芯片优缺点_“碳基芯片”的材料,将采用碳纳米管制成,或比传统芯片提升10倍...
- 利用python对文件夹中所有图像进行批量增强处理并保存结果
- 城市信息模型基础平台(CIM)产品白皮书
热门文章
- echarts tooltip层级
- 复杂美区块链溯源系统架构
- 定义一个名为Cylinder类表示圆柱,它继承Circle类
- Arcgis desktop 10及Arcgis Engine 10破解
- java老师实例_java实例关于继承求实例,有关学生和老师的程序代码!望诸位软件达人帮忙,谢谢大虾!...
- ARMCortex系列仿真调试器
- jenkins构建失败后将信息发送到企业微信
- Win10家庭中文版开机后弹窗无法登录到你的账户点注销没用(解决过程记录)
- 计算机用户注销后不见了,注销当前用户后 Win10找不到Administrator用户登录选项怎么解决?...
- xgb.cv进行交叉验证