QTreeWidget настройка цвета альтернативной строки - PullRequest
2 голосов
/ 09 августа 2011

Я хочу установить цвет для альтернативной строки в древовидном виджете, который я сделал с

setAlternatingRowColors(1);
QPalette p = palette();
p.setColor( QPalette::AlternateBase, QColor(226, 237, 253) );
setPalette(p);

Но здесь после каждого отдельного щелчка цвет устанавливается на строку под уже установленной строкой или переключается настройка цветамежду рядами.Я хочу, чтобы он был постоянным для определенной строки.Означает сначала, если во 2-й строке задан цвет, а после одного клика набор цветов переходит в 3-й ряд.Я хочу, чтобы это было только во втором ряду

1 Ответ

1 голос
/ 09 августа 2011

Я предлагаю использовать модель для этого и вернуть соответствующий цвет фона для вашей модели. Когда data(const QModelIndex& index, int role) вызывается объектом модели для вида (или QTreeWidget в вашем случае), одно из значений role будет Qt::BackgroundRole. Что-то вроде следующего сделает то, что вы хотите:

QVariant SomeModel::data(const QModelIndex& index, int role)
{
    switch(role)
    {
    // other role handling code here. below is the except for handling BackgroundRole
    case Qt::BackgroundRole:
        if (0 == index.row() % 2)
            return QColor(226, 237, 253);
        else
            return Qt::white;
    break;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...