Я меняю цвет текста двух виджетов QTextEdit, а также довольно много других QLineEdits. Это происходит всякий раз, когда я отключу или включу свойство readonly, чтобы сделать его лучше визуально.QTextEdit :: setPalette не обновляет цвет текста
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();
Несмотря на то, что это работает, я хотел бы менее Hacky способ обновить все цвета текста на QTextEdit.
Кто-нибудь знает о решении?
Вы пробовали 'ui-> TextEdit-> update()'? – LogicStuff
Ya, обновление() не работает. –
Как насчет использования таблиц стилей? – LogicStuff