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

来源:互联网 发布:罗开元淘宝店 编辑:程序博客网 时间:2024/06/06 07:25

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

//  设置光标的选区,使格式作用于选区内的字符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);}

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

1 0
原创粉丝点击