IscanderCheSept. 8, 2023, 7:12 a.m.
Кастомная 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 по приведённому коду.
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!
OI
- Ora Iro
- Dec. 24, 2024, 5:38 p.m.
C++ - Test 001. The first program and data types
- Result:40points,
- Rating points-8
AD
- Akiv Doros
- Nov. 12, 2024, 1:58 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:50points,
- Rating points-4
m
- molni99
- Oct. 26, 2024, 11:37 a.m.
C ++ - Test 004. Pointers, Arrays and Loops
- Result:80points,
- Rating points4
Last comments
ИМ
Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
Игорь МаксимовNov. 22, 2024, 10:51 p.m.
Evgenii LegotckoiNov. 1, 2024, 12:37 a.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, 5:51 p.m.
QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
Now discuss on the forum
Donald RandolphDec. 30, 2024, 1:59 p.m.
Nirvana Yoga SchoolDec. 30, 2024, 4:13 p.m.
Mobile app development company in Chennai A Mobile app development company in Chennai focuses on creating personalized mobile applications to meet various business requirements. These companies offer a full range of services,…
Excel in Exams with PSLE Maths Tuition Singapore Preparing for the PSLE can be challenging, but the right guidance makes all the difference. PSLE Maths tuition Singapore offers personalized coaching to help students master key concepts, improv…
Unlock Your Potential with the Certified Public Accountant Credential" Becoming a Certified Public Accountant (CPA) is a career milestone that opens doors to unparalleled opportunities in the world of accounting and finance. This globally recognized qualification s…
Я бы так сделал:
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.
Спасибо за отлик!