Проблема настройки таблицы стилей QTreeView с полосой прокрутки - PullRequest
1 голос
/ 16 апреля 2009

На снимке экрана ниже показаны два QTreeView. Для того, что справа, я добавил настройку CSS:

setStyleSheet(
    "background-color: #EAF5FF;"
    "alternate-background-color: #D5EAFF;"
);

Обратите внимание, что внешний вид полосы прокрутки изменился. В нем использовался стиль "windows", а не стиль "windowsxp" (который используется по умолчанию, поскольку я занимаюсь разработкой под Xp).

Как использовать вышеуказанные настройки стиля без изменения внешнего вида полосы прокрутки?

Я использую QT 4.5 и Windows XP.

ScreenShot

Ответы [ 2 ]

3 голосов
/ 16 апреля 2009

Вам нужна одна из способностей, которую дает вам настройка CSS, помимо того, что вы можете сделать напрямую? Для изменения цвета вы можете сделать это непосредственно с палитрой виджета, которая должна сохранить ваш стиль.

Кроме того, помните, что изменения стиля наследуются, поэтому, если любой виджет, содержащий дерево справа, имеет стиль, отличный от любого, содержащего дерево слева, это также может вызвать изменения.

Кроме того, я думаю, что это ошибка Qt, если единственное отличие - это таблица стилей css.

2 голосов
/ 17 апреля 2009

Совет по прохождению маршрута QPalette сработал. Вот решение:

#if 0  // this causes the problem
    setStyleSheet(
        "background-color: #EAF5FF;"
        "alternate-background-color: #D5EAFF;"
    );
#else // this works correctly
    QPalette p = palette();
    p.setColor(QPalette::Base, QColor(qRgb(0xEA, 0xF5, 0xFF)));
    p.setColor(QPalette::AlternateBase, QColor(qRgb(0xD5, 0xEA, 0xFF)));
    setPalette(p);
#endif

Оба метода должны работать в соответствии с документацией, поэтому я бы сказал, что это ошибка Qt.

Редактировать: После работы с этим новым методом в течение последних нескольких дней я заметил, что может быть и улучшение производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...