IscanderCheҚыр. 8, 2023, 7:12 Т.Ж.
Кастомная QAbstractListModel и цвет фона, цвет текста и шрифт
Добрый день.
Пытаюсь поменять в модели цвет фона и текста, а так же шрифт и его размер. Получаю для всех трёх ролей - Qt::FontRole, Qt::BackgroundRole и Qt::ForegroundRole - однотипную ошибку. Что-то похожее у меня уже было когда-то давно, но я забыл, в чём там было дело.
QVariant MyAbstractListModel::data(const QModelIndex& index, int role) const { if(!index.isValid()) return QVariant(); if(index.row() >= stringList.size()) return QVariant(); if(role == Qt::DisplayRole || role == Qt::EditRole) { QVariant value = QVariant::fromValue(stringList.at(index.row())); return value; } if(role == Qt::FontRole) { QFont font = QAbstractListModel::data(index, Qt::FontRole).value<QFont>(); font.setFamily("Courier"); font.setPointSize(10); return font; } if(role == Qt::BackgroundRole) { QBrush brush = QAbstractListModel::data(index, Qt::BackgroundRole).value<QBrush>(); QColor color("#293134"); brush.setColor(color); return brush; } if(role == Qt::ForegroundRole) { QBrush brush = QAbstractListModel::data(index, Qt::ForegroundRole).value<QBrush>(); QColor color("#e0e2e4"); brush.setColor(color); return brush; } return QVariant(); }
D:\workcopies\dev_qt2\SimpleCodeEditor\myabstractlistmodel.cpp:37: ошибка: undefined reference to `__imp__ZNK18QAbstractItemModel4dataERK11QModelIndexi'
P.S. Ругается, соот-но, на строки 17, 25, 33 по приведённому коду.
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!
Пікірлер
m
- molni99
- Қаз. 26, 2024, 1:37 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:80ұпай,
- Бағалау ұпайлары4
m
- molni99
- Қаз. 26, 2024, 1:29 Т.Ж.
C++ - Тест 004. Указатели, Массивы и Циклы
- Нәтиже:20ұпай,
- Бағалау ұпайлары-10
FФ
- FONLY- ФОНЛИ
- Қаз. 25, 2024, 10:04 Т.Ж.
C++ - Тест 003. Условия и циклы
- Нәтиже:42ұпай,
- Бағалау ұпайлары-8
Соңғы пікірлер
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 аналогично. Могу предположить, что из-за более новой верси…
Qt Linux - Сабақ 001. Linux астында Autorun Qt қолданбасы как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
Енді форумда талқылаңыз
IscanderCheҚаз. 31, 2024, 3:43 Т.Қ.
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
ИМ
Реализация навигации по разделам Спасибо Евгений!
Игорь МаксимовҚаз. 3, 2024, 4:05 Т.Ж.
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …
Я бы так сделал:
QVariant var = QAbstractListModel::data(index, Qt::ForegroundRole).value();
потом проверил var на тип - может в value ничего нет?
Обычно роли типа Qt::ForegroundRole надо реализовывать самому (прямо тут же в ::data), то сть создавать и отдавать QFont.
Поясните подробнее этот момент.
Когда я наследовался от QSqlTableModel, там такой код нормально работал.
Промотрите просто так : QVariant var = QAbstractListModel::data(index, Qt::ForegroundRole).value();
что в var?
Еще обратил внимание, что QAbstractListModel:: это же абстрактный класс. Похоже надо не абстрактный , а "реальный" типа QSqlTableModel .
Да, но не совсем. Решилось с помощью стайлшитов и setFont.
Спасибо за отлик!