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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QTableWidget со своим наследником, ВОЛШЕБНЫЙ RUNTIME C++  (Прочитано 2884 раз)
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"));  (для таблицы свой класс ячейки поставил прототипом ещё в конструкторе) значение роли редактирование присваивается, а дисплей роль пуста. Стоит запустить ячейку на редактирование и отпустить значение по дисплей роли уже равно по роли редактирования. Что не так делаю, помогите, спс?
« Последнее редактирование: Июня 12, 2011, 00:22 от daimon » Записан
daimon
Гость
« Ответ #1 : Июня 11, 2011, 15:21 »

Ещё один прикол с QtableWidget, возвращаю указатель на итем только тот, который сейчас не видно на таблице и проверяю на существование, проверка проходит, а итема нет!!!!!!

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

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

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

если не так поправьте
Записан
daimon
Гость
« Ответ #2 : Июня 12, 2011, 00:16 »

с рантаймом всё работает (прям чудо), а без - начинаются проблемы с указателями - содержат битые объекты, даже проверка указателя через if не спасает. Что делать?
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #3 : Июня 12, 2011, 00:30 »

... Что делать?
1) Не паниковать)
2) Учиться правильно формулировать вопросы (Пусть лучше будет много предложений, но они будут более простыми и законченными, чем этот выплеск случайных слов)
3) Завязывать с наркотиками) *

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

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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