crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> MVC. Своя модель и ListView
azure
  опции профиля:
сообщение 27.4.2010, 14:45
Сообщение #11


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 24.12.2009
Пользователь №: 1332

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 27.4.2010, 11:53) *
что значит ниже лежащие?

Есть класс PlotCurve, каждый из которых содержит QString name. Объекты создаются при помощи new, указатели помещаются в QList<PlotCurve*>.
Сделал модель (subclass от QAbstractListModel) - PlotCurveModel.

QVariant PlotCurveModel::data(const QModelIndex &index, int role) const {
    QVariant val;
    //curveList is QList<PlotCurve*>
    val.setValue(curveList->at(index.row())->getName());
    qDebug()<<"PlotCurve name at index"<<index.row()<<"is"<<val.toString();
    return val;
}

int PlotCurveListModel::rowCount(const QModelIndex &parent) const {
    return curveList->count();
}


Вызываются обе эти функции, с помощью qDebug я удостоверился что возвращаемый QVariant содержит строку с именем нужной PlotCurve.

Цитата(Litkevich Yuriy @ 27.4.2010, 11:53) *
Вот когда данные в модели изменились, она посылает сигнал dataChanged()

Пробовал, вид не обновлялся почему-то. Видимо, у меня есть какаято бяка в коде. Есть гденить рабочие примеры с наследованием моделей и с изменением данных?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 27.4.2010, 18:34
Сообщение #12


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(azure @ 27.4.2010, 18:45) *
Есть гденить рабочие примеры с наследованием моделей и с изменением данных?
Дык, всё там же в документации по Модель/Представлении: Создание новых моделей
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
azure
  опции профиля:
сообщение 29.4.2010, 13:54
Сообщение #13


Студент
*

Группа: Участник
Сообщений: 60
Регистрация: 24.12.2009
Пользователь №: 1332

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 27.4.2010, 18:34) *
Цитата(azure @ 27.4.2010, 18:45) *
Есть гденить рабочие примеры с наследованием моделей и с изменением данных?
Дык, всё там же в документации по Модель/Представлении: Создание новых моделей


I did it!
Как только в data() я сделал вместо тупого return QVaraint(object->getName()) обертку для обработки role, как показано в документации, - заработало.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
haiflive
  опции профиля:
сообщение 14.8.2010, 16:30
Сообщение #14


Студент
*

Группа: Участник
Сообщений: 37
Регистрация: 8.7.2010
Пользователь №: 1868

Спасибо сказали: 1 раз(а)




Репутация:   0  


Что-то я не понял как подключить модель к базе..
QStringList stringList; нужно самому заполнять данными из БД?.

Вобщем, нужно организовать поиск в базе по одному столбцу из таблицы (найти по фамилии)
при пустом поле вывести все записи, при введении буквы только записи начинающиеся с этой буквы.. и тд..
колличество записей ~5000

Вопросы:
1) какую модель использовать?
2) как её заполнить?
4) как подключить к QListView
3) как её заполнить из базы(MySQL)?

Спасибо за ответы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 14.8.2010, 18:02
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(haiflive @ 14.8.2010, 20:30) *
Что-то я не понял как подключить модель к базе..
QStringList stringList; нужно самому заполнять данными из БД?.
да

Цитата(haiflive @ 14.8.2010, 20:30) *
1) какую модель использовать?
QSqlTableModel больше всего подойдёт.

Цитата(haiflive @ 14.8.2010, 20:30) *
1) какую модель использовать?
2) как её заполнить?
4) как подключить к QListView
смотри описание

Цитата(haiflive @ 14.8.2010, 20:30) *
3) как её заполнить из базы(MySQL)?
нет разницы из какой базы.

Цитата(haiflive @ 14.8.2010, 20:30) *
при пустом поле вывести все записи, при введении буквы только записи начинающиеся с этой буквы.
нужно использовать промежуточную модель (proxy)


haiflive, тебе не мешало бы посмотреть все примеры и демонстрации Qt. твоя задача уже есть в виде примера
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 19:40