Спасибо за помощь.
Теперь я понимаю.Я добавил код в QWidget * createEditor (QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index) const метод для стиля QLineEdit.Я пытаюсь получить тот же цвет фона для QLineEdit, когда он создается - когда я редактирую элемент qtreeview.Проблема в том, что когда я выбираю элемент в qtreeview, вся строка окрашивается.Это нормально.Теперь, когда я редактирую элемент, например, чтобы изменить текст в элементе qtreeview, только текстовая часть выделяется и окрашивается в тот же цвет, что и предыдущий цвет выделения строки.Остальная часть QLineEdit - белая.В режиме редактирования я бы хотел закрасить всю строку, которая редактируется, тем же цветом.Я мог бы, как видно из моего кода, раскрасить его с помощью RGB, но я не знаю точных значений RGB.Есть ли способ получить точный цвет RGB из выбора элемента, а затем использовать его в
pal.setColor(QPalette::Highlight,QColor(qRgb(0,0,255)));
мой код:
QWidget* myQItemDelegate::createEditor(QWidget *parent,const QStyleOptionViewItem &option,const QModelIndex &index) const
{
QLineEdit *lineEdit = new QLineEdit(parent);
connect(lineEdit,SIGNAL(editingFinished()),this,SLOT(commitAndCloseEditor()));
QPalette pal;
pal.setColor(QPalette::HighlightedText, QColor(Qt::white));
pal.setColor(QPalette::Highlight,QColor(qRgb(0,0,255)));
lineEdit->setPalette(pal);
lineEdit->setFrame(false);
return lineEdit;
}
Спасибо, Том