Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Igors от Декабрь 15, 2013, 18:25



Название: Еще вопрос по табличке
Отправлено: Igors от Декабрь 15, 2013, 18:25
Добрый день

В принципе все хорошо, обильный инструментарий намного перекрывающий мои скромные потребности  :) Но вот вылезла мелкая неприятность:

- в одной колонке тип данных "объект приложения". Ну зарегистрировал его, могу помещать в QVariant <myobject>. Рассчитывал сделать так: в ячейку установлю QVariant <myobject> как EditRole, а для отображения использую DisplayRole которая показывает подготовленную мною строку.  Не бычит, по исходникам
Код
C++ (Qt)
QVariant QTreeWidgetItem::data(int column, int role) const
{
   switch (role) {
   case Qt::EditRole:
   case Qt::DisplayRole:
       if (column >= 0 && column < d->display.count())
           return d->display.at(column);
       break;
...
 
Т.е. когда мне нужно в делегате создавать editor - я имею QVariant <QString>, который ни о чем не говорит. Приходится лазить по строке, извлекать тип из др колонки - коряво. Как бы это порешать?

Еще лучше было бы если отображение кастомного QVariant <myobject> автоматически использовало мой перевод его в строку - но возможности изменить QVariant::toString не нашел

Спасибо


Название: Re: Еще вопрос по табличке
Отправлено: Disaron от Декабрь 16, 2013, 06:34
Код
C++ (Qt)
QString myobject::operator QString(const myobject& obj) const
{
   return myobject::stringData;
}
Не поможет?