Как получить цвет текста из qplaintextedit?
Я хочу получить цвет текста из простого текста. я могу получить fontWeight и другой формат с помощью charFormat(), но когда я отлаживаю цвет переднего плана, он не имеет цвета!!?
Помогите мне, пожалуйста....
образец кода:
QTextCursor c = textCursor();
QTextCharFormat result = c.charFormat();
if (result.fontWeight() == QFont::Bold)
qDebug() << "bold text"; //worked
else if (result.fontWeight() == QFont::Normal)
qDebug() << "normal text"; //worked
if (result.foreground().color() == Qt::green)
qDebug() << "green"; //not worked !!
else if (result.foreground().color() == Qt::blue)
qDebug() << "blue"; //not worked !!
else
qDebug() << "no color !!";
TNX
1 ответ
Если вы используете Qt4, вы должны использовать класс QPalette. QPalette хранит разные цвета для разных объектов в графическом интерфейсе (цвет текста, фон и т. Д.). Он наследуется от родительского виджета, но может быть изменен для каждого имеющегося у вас виджета.
QPlainTextEdit *pteEdit; // your text edit
QPalette palette = pteEdit->palette();
QColor textColor = palette.color( QPalette::WindowText );
Прочтите документацию по QPalette. Это может быть другая роль цвета в зависимости от типа виджета и наличия подтипов. Для неактивного текста, обычного текста и т. Д.