Qt学习笔记之文本编辑器实现加粗、倾斜、下划线、字体、居中对齐、左对齐、右对齐

一、加粗、倾斜、下划线
在实现这些功能的时候,我们首先要知道,这三个功能是要施加在所选中的字体上的,如果没有这个过程,那么这三个功能将会对所有的字符进行上述处理。所以,第一部就是要实现设置光标的选区,使格式作用于选区内的字符。

//  设置光标的选区,使格式作用于选区内的字符
void editorwindow::mergeFormat(QTextCharFormat fmt)
{
    QTextCursor cursor = ui->textEdit->textCursor();
    if (!cursor.hasSelection()) {
       cursor.select(QTextCursor::WordUnderCursor);
    }
    cursor.mergeCharFormat(fmt);
}

加粗、倾斜、下划线功能的实现

//加粗
void editorwindow::on_actionTextBold_triggered()
{
    QTextCharFormat fmt;
    fmt.setFontWeight(boldcheck ? QFont::Bold : QFont::Normal);
    mergeFormat(fmt);
    boldcheck = !boldcheck;
}
//倾斜
void editorwindow::on_actionTextItalic_triggered()
{
    QTextCharFormat fmt;
    fmt.setFontItalic(Italiccheck ? true : false);
    mergeFormat(fmt);
    Italiccheck = !Italiccheck;
}
//下划线
void editorwindow::on_actionTextUnderLine_triggered()
{
    QTextCharFormat fmt;
    fmt.setFontUnderline(UnderLinecheck ? true : false);
    mergeFormat(fmt);
    UnderLinecheck = !UnderLinecheck;
}

其中boldcheck 、Italiccheck 、UnderLinecheck 是全局变量,用于检测这个功能的前一个状态,比如我选中几个字符,然后点击加粗,这几个字符就加粗了,然后我再点击加粗的时候,之前的效果取消。这就是这几个全局变量的作用。

二、字体的改变
用一下代码就可以实现改变文本字符字体的改变

//改变字体
void editorwindow::on_actionFont_triggered()
{

    bool ok;
    QFont font = QFontDialog::getFont(&ok, QFont("楷体", 20), this);
    if(ok){
    ui->textEdit->setCurrentFont(font);
    }
}

三、居中对齐、左对齐、右对齐
这三个比较简单

//左对齐
void editorwindow::on_actionLift_triggered()
{
    ui->textEdit->setAlign\ment(Qt::AlignLeft);
}
//居中对齐
void editorwindow::on_actionCenter_triggered()
{
    ui->textEdit->setAlignment(Qt::AlignCenter);
}
//右对齐
void editorwindow::on_actionRight_triggered()
{
    ui->textEdit->setAlignment(Qt::AlignRight);
}

这三个函数能实现,光标所在的行可以实现居中对齐,左对齐,右对齐的功能。

  • 15
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值