#c #qt
#c #qt
Вопрос:
Я пытаюсь удалить пунктирный контур, когда элемент в QTableView сфокусирован. Я нашел в других ответах, что outline: 0
это удалит его, но для меня это работает только в странных случаях:
В этой таблице стилей контур удаляется, а фон становится желтым:
tableView->setStyleSheet("QTableView::item::focus { outline: 0; background-color: yellow; } QTableView { outline: 0; }");
В этой таблице стилей контур все еще отображается:
tableView->setStyleSheet("QTableView::item::focus { outline: 0; } QTableView { outline: 0; }");
tableView->setStyleSheet("QTableView { outline: 0; }");
tableView->setStyleSheet("QTableView::item::focus { outline: 0; }");
tableView->setStyleSheet("QTableView::item::focus { outline: 0; background-color: yellow; }");
Я хочу, чтобы контур был удален, а фон сохранен в цвете по умолчанию. Но, похоже, у него нет такой возможности. Команда outline работает только в определенных случаях, которые кажутся мне очень случайными.
Это ошибка от меня, из-за неправильного понимания Qt или таблиц стилей. Или это известная ошибка или новая ошибка?
Редактировать (изображения для понимания того, что я имею в виду):
-
Это поведение по умолчанию. Посмотрите на контур вокруг элемента 1-2!
-
Это связано с добавлением стиля
QTableView::item::focus { outline: 0; background-color: yellow; } QTableView { outline: 0; }
. Теперь линия не отображается, но фон сфокусированного объекта желтый:
-
Это касается 4 вариантов, которые должны работать, но контур все еще отображается (контур находится вокруг объекта в позиции 1-2):
Дело в том, что я не понимаю, почему это работает именно одним конкретным способом, а не другими? И что мне нужно сделать, чтобы удалить контур без изменения фона?
Комментарии:
1. Скажите, что не работает: это не помогает понять вас, объясните лучше.
2. Обратите внимание, что загруженный стиль должен поддерживать таблицу стилей, чтобы это работало. На каждой платформе используется свой стиль. Итак, какая у вас платформа / стиль?