Qt- C++ QTableView подсветить строку
Задача- подсветить строку таблицы при наведении мыши.
Использую модель на базе примера 39- го урока.
Там при переопределенном методе Data я раскрашиваю строки тельняшкой.
Как делается подсветка строки при наведении мыши? Не нажатии, а наведении.
И делать это в TableView или в модели?
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.Do you like it? Share on social networks!
AD
- Akiv Doros
- Nov. 11, 2024, 2:58 p.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 1:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
m
- molni99
- Oct. 26, 2024, 1:29 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:20points,
- Rating points-10
Last comments
ИМ
Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовNov. 22, 2024, 11:51 a.m.
Evgenii LegotckoiOct. 31, 2024, 2:37 p.m.
Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
ИМ
Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь МаксимовOct. 5, 2024, 7:51 a.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Now discuss on the forum
Evgenii LegotckoiJune 24, 2024, 3:11 p.m.
t
google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
tonypeachey1Nov. 15, 2024, 6:04 a.m.
NSProjectJune 4, 2022, 3:49 a.m.
IscanderCheOct. 31, 2024, 3:43 p.m.
Машина тьюринга // Начальное состояние 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. Как написать кастомный делегат управляющий подсветкой строки в таблице
Спасибо.