crossplatform.ru

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

> Работ с элементами модели - неужели цикл?
shamanix
  опции профиля:
сообщение 10.3.2010, 13:00
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 10.3.2010
Пользователь №: 1522

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




Репутация:   0  


Добрый день. Задача тривиальная - сделать QListView с чекбоксами. Я так понял что один единственный способ это сделать это для каждого элемента модели устанавливать флаги? В цикле? Гугл перерыл в поисках чего-нибудь типа model->getItems().setFlags(...); но нашел только обращение к каждому элементу в цикле...может не допонял сути истинной.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
shamanix
  опции профиля:
сообщение 11.3.2010, 22:10
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 17
Регистрация: 10.3.2010
Пользователь №: 1522

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




Репутация:   0  


добился чтобы появился чекбокс,но теперь что-то галка в нем не ставится :o: :lol:
class MyModel : public QStandardItemModel{
    Qt::ItemFlags flags(const QModelIndex & index ) const{
        return  QStandardItemModel::flags(index) | Qt::ItemIsUserCheckable;
    }

    QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const{
        if ( !index.isValid() )
            return QVariant();

        if ( role == Qt::CheckStateRole )
        {
            QStandardItem* item = static_cast<QStandardItem*>(index.internalPointer());
            return item->checkState();
        }
        else{
            return QStandardItemModel::data(index,role);
        }
    }
};

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QListView list;
    MyModel model;
    QStandardItem item;

    item.setText("Test row");

    model.appendRow(&item);

    list.setModel(&model);
    list.show();
    return a.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
DIMEDROLL
  опции профиля:
сообщение 12.3.2010, 9:16
Сообщение #3


Участник
**

Группа: Участник
Сообщений: 165
Регистрация: 28.9.2008
Из: Киев
Пользователь №: 304

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




Репутация:   0  


Цитата(shamanix @ 11.3.2010, 21:10) *
добился чтобы появился чекбокс,но теперь что-то галка в нем не ставится :o: :lol:

Заккоментируй свое переопределение метода data, что то ты там нашаманил не то.
А просто добавь
item.setCheckState(Qt::Unchecked);

или
item.setCheckState(Qt::Сhecked);

И будет твой элемент с чекбоксом ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 28.12.2024, 15:10