先记录一个问题:在qt界面往textEdit中加文字需要改变颜色时,采用
void textChanged();//每当文档内容变化发生时,就会发出该信号。这个函数会有一个问题,第一个字符没有改变;采用
void cursorPositonChanged()//每当光标位置改变时,就会发出该信号。这个函数可以解决。
删除某一行的原理:
根据行所在光标的位置来区分:三种情况,一是在行首、行尾、行中。
通过QTextCursor cursor = ui.m_textEdit->textCursor();捕捉光标所在位置,以及atBlockEnd()、atBlockStart()方法判断光标所在位置
附如下代码:
if (z == 1)
{
while (i != 1)
{
cursor.deletePreviousChar();
i = cursor.atBlockStart();
}
ui.m_textEdit->setTextColor(Qt::black);
}
else if (i == 1)
{
while (z != 1)
{
cursor.deleteChar();
z = cursor.atBlockEnd();
}
ui.m_textEdit->setTextColor(Qt::black);
}
else
{
while (i != 1)
{
cursor.deletePreviousChar();
i = cursor.atBlockStart();
}
while (z != 1)
{
cursor.deleteChar();
z = cursor.atBlockEnd();
}
ui.m_textEdit->setTextColor(Qt::black);
}