Qt- C++ QTableView подсветить строку
Задача- подсветить строку таблицы при наведении мыши.
Использую модель на базе примера 39- го урока.
Там при переопределенном методе Data я раскрашиваю строки тельняшкой.
Как делается подсветка строки при наведении мыши? Не нажатии, а наведении.
И делать это в TableView или в модели?
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
OI
- Ora Iro
- Жел. 24, 2024, 6:38 Т.Ж.
C++ - Тест 001. Первая программа и типы данных
- Нәтиже:40ұпай,
- Бағалау ұпайлары-8
AD
- Akiv Doros
- Қар. 11, 2024, 2:58 Т.Қ.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:50ұпай,
- Бағалау ұпайлары-4
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
Соңғы пікірлер
ИМ
Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Енді форумда талқылаңыз
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
NSProjectМаусым 4, 2022, 3:49 Т.Ж.
IscanderCheҚаз. 31, 2024, 3: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. Как написать кастомный делегат управляющий подсветкой строки в таблице
Спасибо.