我正在改变两个QTextEdit小部件的文本颜色以及其他一些QLineEdits . 每当我禁用或启用readonly属性以使其在视觉上更好时,就会发生这种情况 .
QPalette* disablePallete;
QPalette* enabledPallete;
disablePallete->setColor(QPalette::Text,Qt::darkGray);
enabledPallete->setColor(QPalette::Text,Qt::black);
// disable writing
ui->TextEdit->setPalette(*disablePallete);
// enable writing
ui->TextEdit->setPalette(*enablePallete);
这一切在我更改调色板的瞬间完美地适用于我的所有LineEdits .
我的问题是QTextEdits中的文本不会立即更新,只有当我单击框内的内容或编辑文本时才会这样做 . 它也会出现故障,只会更新光标所在的位置 .
这是一个例子 .
我每次都这样做了 . 它迫使一切都重新粉刷 .
ui->roomDescriptionTextEdit->append("");
ui->roomDescriptionTextEdit->undo();
虽然这有效,但我希望用更简洁的方法来更新QTextEdit上的所有文本颜色 .
Does anyone know of a solution?