Я хочу получить цвет текста из простого текста. я могу получить 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
Если вы используете Qt4, вы должны использовать класс QPalette. QPalette хранит разные цвета для разных объектов в графическом интерфейсе (цвет текста, фон и т. Д.). Он наследуется от родительского виджета, но может быть изменен для каждого имеющегося у вас виджета.
QPlainTextEdit *pteEdit; // your text edit
QPalette palette = pteEdit->palette();
QColor textColor = palette.color( QPalette::WindowText );
Прочтите документацию по QPalette. Это может быть другая роль цвета в зависимости от типа виджета и наличия подтипов. Для неактивного текста, обычного текста и т. Д.
Других решений пока нет …