Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Програмирование платформенно-независимых систем > Trolltech Qt
Перезагрузить страницу Как исправить код qtableview, setData, submitall
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
maint
Guest
 
Сообщений: n/a
По умолчанию Как исправить код qtableview, setData, submitall - 03.08.2009, 08:34

Имеется код:

Код:
QVariant DBModel::data(const QModelIndex &index, int role) const
{
    QVariant value = QSqlQueryModel::data(index, role);

    switch (role) {
    case Qt::DisplayRole:
    case Qt::EditRole:
        if (index.column() == 4 && role == Qt::DisplayRole)
            return value.toInt() != 0 ? trUtf8("Да") : trUtf8("Нет");
    case Qt::CheckStateRole:
        if (index.column() == 4)
            return (QSqlQueryModel::data(index).toInt() != 0) ? Qt::Checked : Qt::Unchecked;
        else
            return value;
    }
    return value;
}

bool DBModel::setData(const QModelIndex &index, const QVariant &value, int)
{
    if (index.column() < 1 || index.column() > 4)
    return false;

    QSqlRecord record;
    record = this->record(index.row());
    if(index.column() == 4) {
        record.setValue("recurs", value.toInt());
    } else if (index.column() == 1) {
        record.setValue("dirname", value.toString());
    } else if (index.column() == 2) {
        record.setValue("fincl", value.toString());
    } else if (index.column() == 3) {
        record.setValue("fexcl", value.toString());
    }
    this->setRecord(index.row(), record);
    this->submitAll();
    view->setFocus();
    return true;
}
где view - QTableView. После submitAll при редактировании view уходит на начало таблицы. Как остаться на текущей записи. Ничего в голову не приходит, кроме запоминания позиций. Думаю все проще и где то рядом
Ответить с цитированием
  (#2 (permalink)) Старый
lit-uriy lit-uriy вне форума
Member
 
Сообщений: 50
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.10.2008
По умолчанию 09.09.2009, 13:27

Цитата:
Ничего в голову не приходит, кроме запоминания позиций.
так и есть, ручками возвращаешь позицию.
Причина поведения: в общем случае, любой пользователь БД мог удалить кучу записей тогда и вернутся будет некуда.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите исправить casper116 Pascal 0 28.02.2011 01:03
что надо исправить! evgen1 Pascal 18 12.12.2010 14:16
Можно ли исправить? rwa12 Мониторы 0 06.12.2010 22:26
Как исправить баг ошибки schanker2 Вопросы начинающих программистов 9 18.11.2009 11:52
PG и QSqlForm как исправить код anep Trolltech Qt 4 16.05.2008 22:08
QT4 QSqlQueryModel & QTableView сортировка по щелчку мыши alexx1524 Trolltech Qt 0 30.01.2008 12:39
Ошибка с ld как ее исправить Mixolap C++ на Unix 2 10.09.2007 18:52
как сделать обновление QTableView imported_shamil Trolltech Qt 10 13.07.2006 16:56
Out of Memory как исправить Smeagorl С/С++ 0 19.07.2004 15:58
IRQL_NOT_LESS_OR_EQUAL как исправить kelz Железо. Написание драйверов 3 29.05.2004 00:51
ErrOr 500 как исправить Anonymous Perl 1 14.10.2003 14:42
Как исправить /usr/bin/ld: cannot find -lqt-mt XKiller C++ на Unix 2 07.10.2002 20:11



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов