crossplatform.ru

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

> как обнулить виджеты QDataWidgetMapper, когда модель отфильтровала 0 записей
Steklova Olga
  опции профиля:
сообщение 27.9.2011, 21:38
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

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




Репутация:   4  


Здравствуйте! Работаю с Qt 4.7, Firebird 2.1.
Подскажите, пожалуйста, новичку в Qt, как обнулить виджеты QDataWidgetMapper, когда фильтр модели изменился и модель QSqlTableModel отфильтровала 0 записей?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Steklova Olga
  опции профиля:
сообщение 28.9.2011, 13:36
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 198
Регистрация: 27.9.2011
Из: Санкт-Петербург
Пользователь №: 2912

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




Репутация:   4  


1. Заглянула в qdatawidgetmapper.cpp,
поняла, что mapper->setCurrentIndex(-1) и не должен работать.

2. Пока что, решила вручную обнулить виджеты:
    mapper->addMapping(lineEdit_1, 0);
    mapper->addMapping(lineEdit_2, 1);
    mapper->addMapping(lineEdit_3, 2);
    ...

void MainWindow_db::update_mapper()
{
    QModelIndex index = view->currentIndex();
    int cur_row = index.row();
    if (index.isValid()) {
        mapper->setCurrentIndex(cur_row);
    } else {
        //mapper->clearMapping(); //этот вариант не работает, как мне надо
        
        //обнуление виджетов вручную
        lineEdit_1->clear(); //предлагаемый мною вариант, кажется, работает как надо
        lineEdit_2->clear();
        lineEdit_3->clear();
    }
}

3.
Цитата
void QDataWidgetMapper::clearMapping ()

Этот вариант не работает, как мне надо,
так как текст в виджетах mapper'а при этом не обнуляется.

Мне кажется, что clearMapping только удаляет связь между mapper и виджетами lineEdit_i,
а мне эту связь терять не надо, просто фильтр у меня выдает либо 0 записей, либо > 0.

4. Кто-нибудь знает другой вариант?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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


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




RSS Текстовая версия Сейчас: 23.11.2024, 17:24