Russian Qt Forum
Ноябрь 01, 2024, 02:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: [1] 2 3 ... 7
1  Qt / Model-View (MV) / Re: QAbstractListModel + QTreeview - не отображаются чекбоксы : Апрель 25, 2015, 12:17
Цитировать
Вся проблема в этой части data
Благодарю. Все встао на свои места.
2  Qt / Model-View (MV) / Re: QAbstractListModel + QTreeview - не отображаются чекбоксы : Апрель 25, 2015, 11:00
В том то и дело что надо выводить чекбоксы в колонке 1 (в приведенном коде была опечатка, оставшаяся после пробы разных вариантов, в том  числе и попыток вывода чекбокса в колонку 0).
3  Qt / Model-View (MV) / QAbstractListModel + QTreeview - не отображаются чекбоксы [РЕШЕНО] : Апрель 25, 2015, 09:51
Доброго времени суток.

В приложении имеется модель, хранящая список сущностей. Сущности - простые объекты, хранят в себе текстовую строку и "флаг" - выбран\не выбран (Qt::Checkstate в качестве типа).

Для отображения списка использую QTreview, с двумя колонками - для вывода названия и чекбокса для выбора элементов списка, т.к. требуется допустить выбор нескольких элементов. Про SelectionMode  у вьюхи я в курсе, но по условиям ТЗ необходимо именно такое поведение - с выбором через чекбоксы.

Проблема в том, что чекбоксы у меня не рисуются, вместо них выводятся числовые значения поля @selected" обпределенного в классе элемента модели.

Код методов data() и setData() в модели следующий:

Код
C
QVariant GroupListModel::data(const QModelIndex &index, int role) const
{
   if (!index.isValid() || role != Qt::DisplayRole)
       return QVariant();
 
   switch (role) {
   case Qt::DisplayRole: {
       if (index.column() == 0) {
           return _modelData[index.row()]->name();
       }
   }
   case Qt::CheckStateRole: {
       if (index.column() == 1) {
           return _modelData[index.row()]->selected();
       }
   }
 
   default:
       break;
   }
 
   return QVariant();
}
 
bool GroupListModel::setData(const QModelIndex &index, const QVariant &value, int role)
{
   if (!index.isValid() || (flags(index) & Qt::ItemIsEditable) == 0) {
       return false;
   }
   qDebug() << "value " << value;
 
   switch (role) {
   case Qt::CheckStateRole: {
       Qt::CheckState state = static_cast<Qt::CheckState>(value.toUInt());
       _modelData[index.row()]->setSelected(state);
       Q_EMIT dataChanged(index, index);
       break;
    }
   default:
       break;
   }
 
   return true;
}
 

Метод flags(const QModelIndex &index) определен так:

Код
C
Qt::ItemFlags GroupListModel::flags(const QModelIndex &index) const
{
   if (!index.isValid())
       return 0;
 
 
   Qt::ItemFlags resultFlags = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
 
   if (index.column() == 1)
   {
       resultFlags |= Qt::ItemIsUserCheckable | Qt::ItemIsEditable;
   }
 
   return resultFlags;
}
 

Qt 5.4.1

В аттаче - минимальный собираемый пример, на основе кода из этого проекта.
4  Qt / Qt Embedded / Re: Доступ к системным сервисам Андроид из Qt : Февраль 19, 2015, 18:26
2Fregloin

Для GPS есть QtPositioning - http://doc.qt.io/qt-5/qtpositioning-index.html
Для WiFi, копайте в сторону Qt Bearer Management - http://doc.qt.io/qt-5/bearer-management.html
Для BroadcastMessaging'а и всего прочего (весь список вы не огласили) пробуйте JNI через QtAndroidExtras - http://doc.qt.io/qt-5/qtandroidextras-index.html

5  Qt / Пользовательский интерфейс (GUI) / Re: Карты (Google Maps / OSM) : Февраль 10, 2015, 22:13
В самой  Qt есть пара модулей под эти цели

Qt Location - http://doc.qt.io/qt-5/qtlocation-index.html
Qt Positioning - http://doc.qt.io/qt-5/qtpositioning-index.html

В QtLocation есть api для отрисовки карт, по данным OSM. API рендеринга карт только qml-ный, но для мобильных устройств - оно вполне ок. Для геокодирования и роутинга в QtPositioning есть и  C++  API.
6  Qt / Общие вопросы / Re: Удаление введенного из QTextStream : Январь 30, 2011, 19:57
Если уж так критичен лишний if  в цикле, то можно сначала выгрузить все в какой-нить верменный QByteArray, потом удалить лишний утвд ghb gjvjob QByteArray::chop(int n)  и уже после все сразу выгрузить в QTextStream, связанный с открытм файлом.

Хотя ещё неизвестно что в итоге будет быстрее на больших файлах.
7  Qt / Общие вопросы / Re: Удаление введенного из QTextStream : Январь 30, 2011, 17:25
Покажите ваш цикл, пдз.
8  Разное / Говорилка / Re: Всех с Наступающим! : Декабрь 31, 2010, 22:35
Желаю в новом году всем удачи в жизни,  интересных проектов, вменяемых заказчиков (мне в прошедшем году на них не везло совсем) и просто больше положительных эмоций (но не без некоторой доли отрицательных)!!!

9  Qt / Пользовательский интерфейс (GUI) / Re: QSystemTrayIcon и файлы изображений : Декабрь 21, 2010, 19:28
QuAzI, вы иконку в формате  Windows ICON (или как там он правильно именуется) сделали? А чем вас PNG для трей-иконки не устроил?
10  Qt / Пользовательский интерфейс (GUI) / Re: QSystemTrayIcon и файлы изображений : Декабрь 20, 2010, 21:52
Хорошо. А есть возможность при сборке влинковать иконку в бинарник?

Читайте про систему ресурсов Qt --  Qt Resources System
11  Qt / Общие вопросы / Re: как задать относительный путь к файлу : Декабрь 06, 2010, 14:53
Код
C++ (Qt)
QString( QCoreApplication::applicationDirPath() +  QDir::toNativeSeparators(QDir::separator())  + "logo.jpg" );
12  Qt / Qt-инструментарий / Re: QtCreator + CMake : Ноябрь 01, 2010, 23:39
Скорее всего нет .  Но креатор в этом отношении не особо отличается, новые файлы все равно руками в  CMakeList прописывать надо.
13  Qt / Qt-инструментарий / Re: QtCreator + CMake : Ноябрь 01, 2010, 20:52
Наверное проще для кого-то работать именно со студийным проектом/солюшеном, чем руками править CMakeLists, я не знаю, т.к. сам  не использую студийный компилер (и соответсвенно студию). .Но если в  KitWar решили это сделать, то наверное кому-то было нужно).

14  Qt / Qt-инструментарий / Re: QtCreator + CMake : Ноябрь 01, 2010, 19:22
Нет, но CMake умеет на основе своих проектов (CMakeLists.txt) генерить проекты для студии)
15  Qt / Qt-инструментарий / Re: QtCreator + CMake : Ноябрь 01, 2010, 19:00
2Varan
Возможно я ошибаюсь, но  cmake  вроде не любит когда файлы "подпроектов" расположены  вне каталога с главным  CMakeLists.txt (пробовал как-то организовать подобное -- ничего путного не ывшло). Кстати, если для сборки используется msvc, зачем вам креатор?
Страниц: [1] 2 3 ... 7

Страница сгенерирована за 0.084 секунд. Запросов: 23.