Qt 5.8 Цвет заголовка QTableView не изменится - PullRequest
0 голосов
/ 02 мая 2019

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

Вот мой код:

tableView = new QTableView;
tableView->setStyleSheet("color: rgb(255, 0, 0);"
                         "border: 1px solid rgb(255, 0, 0);"
                         "gridline-color: rgb(255, 0, 0);"
                         "background-color: rgba(0, 0, 0, 0);"
                         "QHeaderView::section { background-color:black }");

Я открыт для любых идей?

Ответы [ 3 ]

0 голосов
/ 02 мая 2019

В вашем коде нет ничего плохого.Согласно официальным документам, он должен работать правильно.

Директива QSS HeaderView определяет свойства для класса QHeaderView:

tableView->setStyleSheet("QHeaderView::section { 
    background-color: red;
    color: white;
    border: 1px solid #6c6c6c;
}");

В качестве альтернативы выможно напрямую изменить свойства раздела QHeaderView:

tableView->horizontalHeader()->setStyleSheet("::section { 
    background-color: red;
    color: white;
    border: 1px solid #6c6c6c;
}");

Если вы хотите изменить фон всего заголовка, используйте:

tableView->horizontalHeader()->setStyleSheet("background-color: black;");
0 голосов
/ 06 мая 2019

Таким образом, ответ на этот вопрос был в других ответах, но они также содержали вводящий в заблуждение код (в любом случае, на моей машине: Win7x64).

Вот что сработало, а что нет (опять же для меня).

Этот код ничего не сделал с заголовком:

tableView->horizontalHeader()->setStyleSheet("background-color: black;");

Этот код работал, но также изменил границу всего виджета QTableView:

tableView->setStyleSheet("QHeaderView::section { 
    background-color: red;
    color: white;
    border: 1px solid #6c6c6c;
}");

Этот код работал как ожидалось:

tableView->horizontalHeader()->setStyleSheet("QHeaderView::section { background-color: rgb(40, 0, 0) }");

Этот код также работает, вариант на приведенном выше:

tableView->horizontalHeader()->setStyleSheet("::section { background-color: rgb(40, 0, 0) }");
0 голосов
/ 02 мая 2019

Мне не известны какие-либо директивы QHeaderView::section, которые можно использовать в контексте таблицы стилей для содержащего представления (например, QTableView, QListView и т. Д.).Я думаю, вам нужно явно установить таблицу стилей QHeaderView ...

tableView = new QTableView;
tableView->setStyleSheet("color: rgb(255, 0, 0);"
                     "border: 1px solid rgb(255, 0, 0);"
                     "gridline-color: rgb(255, 0, 0);"
                     "background-color: rgba(0, 0, 0, 0);");
tableView->horizontalHeader()->setStyleSheet("background-color: black;");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...