Qt- C++ QTableView подсветить строку
Задача- подсветить строку таблицы при наведении мыши.
Использую модель на базе примера 39- го урока.
Там при переопределенном методе Data я раскрашиваю строки тельняшкой.
Как делается подсветка строки при наведении мыши? Не нажатии, а наведении.
И делать это в TableView или в модели?
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
AD
- Akiv Doros
- 12 ноября 2024 г. 1:58
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:50баллов,
- Очки рейтинга-4
m
- molni99
- 26 октября 2024 г. 11:37
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
m
- molni99
- 26 октября 2024 г. 11:29
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:20баллов,
- Очки рейтинга-10
Последние комментарии
ИМ
Django - Урок 017. Кастомизированная страница авторизации на Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь Максимов22 ноября 2024 г. 22:51
Evgenii Legotckoi1 ноября 2024 г. 0:37
Читалка fb3-файлов на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Урок 064. Как написать расширение для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5 октября 2024 г. 17:51
QML - Урок 016. База данных SQLite и работа с ней в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Сейчас обсуждают на форуме
Evgenii Legotckoi25 июня 2024 г. 1:11
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey115 ноября 2024 г. 17:04
NSProject4 июня 2022 г. 13:49
IscanderChe1 ноября 2024 г. 1:43
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
Это делается при помощи делегата.
Вот в этом топике обсуждался делегат, сможете найти некоторые примеры кода и в общих чертаъ понять применение делегатов в таблицах.
https://evileg.com/ru/forum/topic/962/
А если без делегата?
В переопределенном классе
там же где и метод data переопределен вызвать раскраску отдельного ряда как?
В основной форме при наведении мыши, вызывается метод
в нем можно вызвать метод из модели нашего переопределенного класса.
А в нем как раскрасить?
Внутри модели НИКАК
Модель данных является более низким уровнем абстракции, чем такие пользовательские действия, как наведение курсора мыши.
Модель данных ничего не знает о том, что происходит во View в данном случае.
За наведение курсора мыши и т.д. отвечает делегат. Именно делегату делегируется визуальное оформление ячеек. Максимум стилевое оформление ячеек.
Да, модели данных в Qt имеют некоторый функционал ролей, а также его можно расширить, если добавлять пользовательские роли.
Но данные роли оформления зависят от данных в модели, но никак не от пользователя, который тыкает мышью во View.
А это void Customers::on_tableView_entered(const QModelIndex &index) называется костыль.
Сделать можно, но это неправильно. Особенно, если у вас будет хитрая кастомизация цвета.
Из простого, можете попробовать поиграться по StyleSheet, что впрочем тоже не самый лучший выбор для таблиц.
Что-то типо такого может заработать.
как итог- получилось. Насчет костыль- или нет- это есть в сигнале студии, значит допустимо.
И ваш вариант переопределенный data с небольшими изменениями
Это работает!
Вы не поняли, это костыль с точки зрения архитектуры. В нормальном продакшене такое через ревью не пропускают. Но ваше право.
Ок, соглашусь, что костыль.
По делегату еще раз подсказать как тогда поступить лучше? По первой ссылке- не совсем то.
Позже немного накидаю пример.
Согласен, что там будет больше кода, чем вы написали.
Но тогда будет правильное разделение данных и пользовательских действий.
Да, спасибо.
Забыли про меня вчера.
Некогда было
Можете теперь посмотреть в этой статье Qt/C++ - Урок 091. Как написать кастомный делегат управляющий подсветкой строки в таблице
Спасибо.