功能:改变textedit里面的文字颜色.
界面如下:

主要的文件是:
(1)建立一个基本的工程,包含mainwindow。
(2)移动一个input控件qtextedit到窗口上,并转到槽。
(3)修改槽函数,使之满足相关的功能实现要求。
主要修改添加光标改变为触发信号,其次更改输入框的字体颜色,颜色只有三种,分别是黑红蓝。
以下为主要代码:
#include "mainwindow.h"
#include "./ui_mainwindow.h" // 其余的工程文件不用修改
int flag = 0;
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_textEdit_cursorPositionChanged()
{
QTextCursor tc = ui->textEdit->textCursor(); // 光标定义
qDebug()<<"该位置的的横坐标为:"<<tc.columnNumber()<<Qt::endl;
qDebug()<<"该位置的的纵坐标为:"<<tc.blockNumber()<<Qt::endl;
if(tc.blockNumber()%2==0&&tc.columnNumber()%3==0){
QString str = ui->textEdit->toPlainText(); // 获取输入的文字
ui->textEdit->setTextColor(Qt::red); // 修改字体颜色,红色
flag = 0;
}
else{
QString str = ui->textEdit->toPlainText();
ui->textEdit->setTextColor(Qt::blue); // 修改字体颜色,蓝色
flag = 1;
}
}
效果和代码已经贴出,如有疑问,请您留言。

本文介绍如何在Qt的QTextEdit中实现光标移动触发字体颜色变化,当光标位于偶数行和第3列时切换为红色,其他情况为蓝色。通过C++代码展示如何设置文本颜色和判断光标位置。
1216





