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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Разные делегаты для одного столбца.  (Прочитано 3166 раз)
Flake
Гость
« : Апрель 16, 2009, 15:08 »

Здравствуйте.

Есть столбец в котором должны быть разные делегаты для ячеек.

Я вот думаю повесить делегат на столбец, а уже в нём, в методе createEditor, в зависимости от того какого типа ячейка возвращать нужный мне виджет едитора.

Подскажите какие есть ещё способы?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Апрель 16, 2009, 16:10 »

Цитировать
Я вот думаю повесить делегат на столбец, а уже в нём, в методе createEditor, в зависимости от того какого типа ячейка возвращать нужный мне виджет едитора.

имхо вполне нормальный метод
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Flake
Гость
« Ответ #2 : Апрель 17, 2009, 09:50 »

Спасибо.

Столкнулся с таким вопросом.
Вот код:
Код
C++ (Qt)
QWidget *objPropertyValueDelegate::createEditor(QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const
{
int flag = index.model()->data( index, Qt::UserRole ).toInt();
 
int row = index.row();
int col = index.column() - 1;
 
const QAbstractItemModel *model = index.model();
 
QString str;
 
QModelIndex ind = model->index(row, col);
str = model->data(ind, Qt::DisplayRole).toString();
 
QLineEdit *editor = 0;
 
if ( !flag )
{
editor = new QLineEdit(parent);
editor->setFrame( false );
}
 
return editor;
}

Если вызывать делегат для дочерний элементов, то str в итоге будут присвоены данные из родительских элементов.

Как указать, что смотреть нужно в дочерние элементы?

Делал так:
Код
C++ (Qt)
QModelIndex ind = model->index(row, col, index);
Но результат тот же.

~Пофиксил Улыбающийся
QModelIndex QModelIndex::parent () const
« Последнее редактирование: Апрель 17, 2009, 09:57 от Flake » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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