Russian Qt Forum
Ноябрь 01, 2024, 03:00 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: как сделать делегатом QComboBox???<<Qt4.2.3  (Прочитано 6068 раз)
linuxoid
Гость
« : Август 20, 2007, 14:42 »

Как сделать делегатом QComboBox в QTableView? Непонимающий Шокированный
Записан
crossly
Гость
« Ответ #1 : Август 20, 2007, 14:49 »

Как сделать делегатом QComboBox в QTableView? Непонимающий Шокированный
загляни в examples.... или книжечку Бланшета....
Записан
linuxoid
Гость
« Ответ #2 : Август 20, 2007, 14:53 »

ну ты и помог..
Записан
denka
Гость
« Ответ #3 : Август 20, 2007, 15:20 »

Внимательно читаеш раздел Model/View Programming в Assistant'e: в частности про модели, отображения и делегаты... Смотриш пример examples\itemviews\spinboxdelegate.

з.ы. я бы на твоем месте это бы давно сделал, а то у тя постов на эту тему уже с десяток, а знаний как смотрю не прибавилось  Грустный  Непонимающий
Записан
crossly
Гость
« Ответ #4 : Август 20, 2007, 15:34 »

а чем тебе ещё помочь..... взгляни на QRelationalTableModel (я так понимаю тебе это нужно)... ну а если нет то смотри QSpinBoxDelegate...
Записан
linuxoid
Гость
« Ответ #5 : Август 21, 2007, 10:19 »

 Обеспокоенный помогите засунуть делегата в ячейки плз!чё я не правильно делаю?

MyDelegate::MyDelegate(
QSqlQueryModel model,
QObject *parent)
                : QItemDelegate(parent),
                mod(model)
                  {    }

   
   QWidget *MyDelegate::createEditor(
               QWidget *parent,
               const QStyleOptionViewItem& /* option */,
               const QModelIndex& /* index */) const {
       QComboBox *editor = new QComboBox(parent);
       editor->setModel(mod);
       editor->installEventFilter(const_cast<MyDelegate*>(this));
       return editor;
   }
   
   void MyDelegate::setEditorData(
                   QWidget *editor,
                   const QModelIndex &index) const {
       QString value = index.model()->data(
               index, Qt::EditRole).toInt();
       QComboBox *ds = static_cast<QComboBox*>(editor);
       ds->setCurrentText(value);
   }
   
   void MyDelegate::setModelData(
               QWidget *editor,
               QAbstractItemModel *model,
               const QModelIndex& index) const {
       QComboBox *ds = static_cast<QComboBox*>(editor);
       ds->interpretText();
       QString value = ds->currentText();
       stroka = ds->currentText();
       model->setData(index, value);
   }
   
   void MyDelegate::updateEditorGeometry(
               QWidget *editor,
               const QStyleOptionViewItem &option,
               const QModelIndex& /* index */) const {
       editor->setGeometry(option.rect);
   }
Записан
linuxoid
Гость
« Ответ #6 : Август 21, 2007, 10:41 »

Всё получилось!спасибо! Крутой
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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