Как получить цвет текста из 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. Это может быть другая роль цвета в зависимости от типа виджета и наличия подтипов. Для неактивного текста, обычного текста и т. Д.

Другие вопросы по тегам