Russian Qt Forum
Июнь 16, 2024, 08:30 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: QComboBox+QDataWidgetMapper  (Прочитано 11031 раз)
nata267
Гость
« Ответ #15 : Май 31, 2010, 14:24 »

...переопределив методы setData и flags,  могу ли я делать это в QSqlRelationalTbaleModel
Эти методы расположены в public секции, поэтому ты можешь их переопределить в наследнике QSqlRelationalTableModel.

но в этом классе эти методы уже не абстрактные, они там определены определенным образом, зачем же я их буду переопределять, разве это правильно??  а вдруг там чтото отвалится после этого??
Записан
nata267
Гость
« Ответ #16 : Май 31, 2010, 14:27 »

а можно если я использую QSqlRelationalTbaleModel не имя таблицы задавать, а какойнибудь произвольный запрос, что если мне нужны данные из нескольких таблиц объединенных например inner join ом в запросе я тогда использую QSqlQueryModel и его метод setQuery(запрос). А как мне это реализовать в QSqlRelationalTbaleModel.
Можно в БД создать представление (CREATE VIEW ...) и задавать его имя в QSqlRelationalTableModel как обычную таблицу, иначе, как ты и делал, использовать QSqlQueryModel.

спасибо, попробую!!
Записан
nata267
Гость
« Ответ #17 : Июль 28, 2010, 08:58 »

нашла другую реализацию делегата - http://doc.trolltech.com/qq/qq21-datawidgetmapper.html

Код:
class Delegate : public QItemDelegate
    {
        Q_OBJECT
    public:
        Delegate(QObject *parent = 0);


        void setEditorData(QWidget *editor,
                           const QModelIndex &index) const
        {
        if (!editor->metaObject()->userProperty().isValid()) {
         if (editor->property("currentIndex").isValid()) {
          editor->setProperty("currentIndex", index.data());
          return;
        }
       }
       QItemDelegate::setEditorData(editor, index);

        }


        void setModelData(QWidget *editor,
                          QAbstractItemModel *model,
                          const QModelIndex &index) const

       {

       if (!editor->metaObject()->userProperty().isValid()) {
        QVariant value = editor->property("currentIndex");
        if (value.isValid()) {
          model->setData(index, value);
          return;
        }
      }
      QItemDelegate::setModelData(editor, model, index);

        }
    };

Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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