当前位置:网站首页>Qt 一个简单的word文档编辑器
Qt 一个简单的word文档编辑器
2022-07-05 23:34:00 【Mr.codeee】
1.先看效果图
可以设置文字的属性、文字颜色、字体类型。以下示例仅供参考,有的地方还是不完善。
2.需要用到的类
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();
}
边栏推荐
- C file and folder operation
- asp. Net pop-up layer instance
- [SQL] SQL expansion languages of mainstream databases (T-SQL, pl/sql, pl/pgsql)
- 俄外交部:日韩参加北约峰会影响亚洲安全稳定
- Laser slam learning record
- Rsync remote synchronization
- 保研笔记四 软件工程与计算卷二(8-12章)
- Rasa 3.x 学习系列-Rasa 3.2.1 新版本发布
- Qcombox (rewrite) + qcompleter (auto completion, auto loading the drop-down options of qcombox, setting the background color)
- Use CAS instead of synchronized
猜你喜欢
随机推荐
Bao Yan notebook IV software engineering and calculation volume II (Chapter 8-12)
C# 文件与文件夹操作
5. Logistic regression
GFS distributed file system
UVA11294-Wedding(2-SAT)
Use mapper: --- tkmapper
Fiddler Everywhere 3.2.1 Crack
帶外和帶內的區別
Part III Verilog enterprise real topic of "Niuke brush Verilog"
QCombox(重写)+QCompleter(自动补全,自动加载qcombox的下拉选项,设置背景颜色)
asp. Net pop-up layer instance
Breadth first search open turntable lock
20220703 week race: number of people who know the secret - dynamic rules (problem solution)
Live tiktok shop 2022 latest gameplay card slot overseas live e-commerce new traffic
Attacking technology Er - Automation
Data analysis - Thinking foreshadowing
When to use useImperativeHandle, useLayoutEffect, and useDebugValue
How to enable relationship view in phpMyAdmin - how to enable relationship view in phpMyAdmin
CIS benchmark tool Kube bench
Rethinking about MySQL query optimization