Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: pupapum от Января 22, 2010, 13:43



Название: Сортировка QTableWidget [РЕШЕНО]
Отправлено: pupapum от Января 22, 2010, 13:43
 Здравствуйте, подскажите, пожалуйста, существует ли какой-нибудь индекс сортировки QTableWidgetItem'ов в QTableWidget, чтобы сортировка происходила непосредственно по нему, а не по тексту. Спасибо.


Переопределяем сравнение для айтемов, благо оно virtual. Спасибо!


Название: Re: Сортировка QTableWidget [РЕШЕНО]
Отправлено: NicK от Января 22, 2010, 19:58
Цитировать
Переопределяем сравнение для айтемов, благо оно virtual.
А можно пример, пожалуйста?


Название: Re: Сортировка QTableWidget [РЕШЕНО]
Отправлено: DS_tm от Января 24, 2010, 15:52
Цитировать
Переопределяем сравнение для айтемов, благо оно virtual.
А можно пример, пожалуйста?

Создаем класс, наследник от QTableWidgetItem, добавляем член класса, как-ой нибуть int _sortIndex, делаем к нему аксессоры(sortIndex(), setSortIndex()). Переопределяем функцию:

Код
C++ (Qt)
bool UserWidgetItem::operator<(const QTableWidgetItem &other) const {
   UserWidegetItem *item = static_cast<UserWidgetItem*>(&other);
   if (!item) return false;
   return sortIndex() < item->sortIndex();
}
 


Название: Re: Сортировка QTableWidget [РЕШЕНО]
Отправлено: SABROG от Января 25, 2010, 01:44
Код
C++ (Qt)
bool UserWidgetItem::operator<(const QTableWidgetItem &other) const {
   UserWidegetItem *item = static_cast<UserWidgetItem*>(&other);
   if (!item) return false;
   return sortIndex() < item->sortIndex();
}
 

Мне кажется такой код собираться не будет. Взятие адреса на other в static_cast...