Qt- C++ QTableView подсветить строку
Задача- подсветить строку таблицы при наведении мыши.
Использую модель на базе примера 39- го урока.
Там при переопределенном методе Data я раскрашиваю строки тельняшкой.
Как делается подсветка строки при наведении мыши? Не нажатии, а наведении.
И делать это в TableView или в модели?
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.Magst du es? In sozialen Netzwerken teilen!
Kommentare
sf
- sdfsdfkp fgskpgokspdog
- 14. Oktober 2024 22:09
C++ - Тест 004. Указатели, Массивы и Циклы
- Ergebnis:90punkte,
- Bewertungspunkte8
МВ
- Максим Васильев
- 2. Oktober 2024 11:14
Qt - Тест 001. Сигналы и слоты
- Ergebnis:68punkte,
- Bewertungspunkte-1
ЛС
- Лев Семенов
- 30. September 2024 18:04
C++ - Тест 001. Первая программа и типы данных
- Ergebnis:53punkte,
- Bewertungspunkte-4
Letzte Kommentare
ИМ
Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
Игорь Максимов5. Oktober 2024 14:51
QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5. Februar 2024 09:50
EVA25. Dezember 2023 18:30
Jetzt im Forum diskutieren
добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь Максимов3. Oktober 2024 11:05
Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
КГ
Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
Кирилл Гусарев27. September 2024 16:09
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Это делается при помощи делегата.
Вот в этом топике обсуждался делегат, сможете найти некоторые примеры кода и в общих чертаъ понять применение делегатов в таблицах.
https://evileg.com/ru/forum/topic/962/
А если без делегата?
В переопределенном классе
там же где и метод data переопределен вызвать раскраску отдельного ряда как?
В основной форме при наведении мыши, вызывается метод
в нем можно вызвать метод из модели нашего переопределенного класса.
А в нем как раскрасить?
Внутри модели НИКАК
Модель данных является более низким уровнем абстракции, чем такие пользовательские действия, как наведение курсора мыши.
Модель данных ничего не знает о том, что происходит во View в данном случае.
За наведение курсора мыши и т.д. отвечает делегат. Именно делегату делегируется визуальное оформление ячеек. Максимум стилевое оформление ячеек.
Да, модели данных в Qt имеют некоторый функционал ролей, а также его можно расширить, если добавлять пользовательские роли.
Но данные роли оформления зависят от данных в модели, но никак не от пользователя, который тыкает мышью во View.
А это void Customers::on_tableView_entered(const QModelIndex &index) называется костыль.
Сделать можно, но это неправильно. Особенно, если у вас будет хитрая кастомизация цвета.
Из простого, можете попробовать поиграться по StyleSheet, что впрочем тоже не самый лучший выбор для таблиц.
Что-то типо такого может заработать.
как итог- получилось. Насчет костыль- или нет- это есть в сигнале студии, значит допустимо.
И ваш вариант переопределенный data с небольшими изменениями
Это работает!
Вы не поняли, это костыль с точки зрения архитектуры. В нормальном продакшене такое через ревью не пропускают. Но ваше право.
Ок, соглашусь, что костыль.
По делегату еще раз подсказать как тогда поступить лучше? По первой ссылке- не совсем то.
Позже немного накидаю пример.
Согласен, что там будет больше кода, чем вы написали.
Но тогда будет правильное разделение данных и пользовательских действий.
Да, спасибо.
Забыли про меня вчера.
Некогда было
Можете теперь посмотреть в этой статье Qt/C++ - Урок 091. Как написать кастомный делегат управляющий подсветкой строки в таблице
Спасибо.