Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: daimon от Июня 10, 2011, 17:51



Название: QTableWidget со своим наследником, ВОЛШЕБНЫЙ RUNTIME C++
Отправлено: daimon от Июня 10, 2011, 17:51
Код
C++ (Qt)
void CSpreadsheetCell::setData(int role, const QVariant &value)
{    setDirty();
 
     if (role == Qt::EditRole)
    {
         myvalue = 2;
         QTableWidgetItem::setData(role, myvalue);
     }
 
 
    else   QTableWidgetItem::setData(role, value);
}
///////////////
 
QVariant CSpreadsheetCell::data(int role) const
{  
      if(role == Qt::DisplayRole)
     {
           return myvalue;
      }
      else
     {
return QTableWidgetItem::data(role);
      }
}
 

проблема состоит в том, что при вызове из QTableWidget функции setItem(0,0,new CSpreadsheetCell("1323"));  (для таблицы свой класс ячейки поставил прототипом ещё в конструкторе) значение роли редактирование присваивается, а дисплей роль пуста. Стоит запустить ячейку на редактирование и отпустить значение по дисплей роли уже равно по роли редактирования. Что не так делаю, помогите, спс?


Название: Re: QTableWidget проблема с наследником класса ячейки
Отправлено: daimon от Июня 11, 2011, 15:21
Ещё один прикол с QtableWidget, возвращаю указатель на итем только тот, который сейчас не видно на таблице и проверяю на существование, проверка проходит, а итема нет!!!!!!

как боком QtableWidget удаляет свои итемы, которые не видно, пробую залезть в модель там этот итем есть.

пробовал в VS2008 без рантайма!!!!!!!!!!!!!!!

с рантаймом итемы просто так не пропадают - и с теми итемами, которые сейчас не отображаются всё норм и указатели не битые

если не так поправьте


Название: Re: QTableWidget проблема с наследником класса ячейки волшебный рантайм
Отправлено: daimon от Июня 12, 2011, 00:16
с рантаймом всё работает (прям чудо), а без - начинаются проблемы с указателями - содержат битые объекты, даже проверка указателя через if не спасает. Что делать?


Название: Re: QTableWidget проблема с наследником класса ячейки волшебный рантайм
Отправлено: m_ax от Июня 12, 2011, 00:30
... Что делать?
1) Не паниковать)
2) Учиться правильно формулировать вопросы (Пусть лучше будет много предложений, но они будут более простыми и законченными, чем этот выплеск случайных слов)
3) Завязывать с наркотиками) *

* Если не употребляете, п. 3 можно пропустить)