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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QListView - как отследить изменение выделенного элемента?  (Прочитано 4845 раз)
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« : Ноябрь 20, 2007, 00:41 »

Как наиболее простым способом отследить изменение выделенного элемента в QListView, если для этого была использована клавиатура? (Т.е. перемещение выделения с одного элемента на другой после нажатия на клавиши управления курсором)

Если не клава, а мышь, то есть соотв. сингал - clicked. А для клавы такого сигнала нету..

Надо обязательно наследоваться или все-тки есть какой-то сигнал (я его не нашел) ?

Qt 4.3.2
« Последнее редактирование: Ноябрь 20, 2007, 00:43 от vipet » Записан
Alex03
Гость
« Ответ #1 : Ноябрь 20, 2007, 06:57 »

Сигнал currentItemChanged() есть у QListWidget, мож получится его использовать. Иначе видимо наследование.
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #2 : Ноябрь 20, 2007, 11:04 »

QListWidget, к сожалению не подоходит, он слишком прост.

Я сделал в итоге простого наследника QListView:

Код:
class AOneColumnListView : public QListView
{
Q_OBJECT
public:
AOneColumnListView(QWidget *parent = 0): QListView(parent) {};

protected:
void selectionChanged(const QItemSelection & selected,
const QItemSelection & deselected)
{
emit currentItemChanged(selected.indexes()[0].row());
};

signals:
void currentItemChanged(int row);

};
Записан
span
Гость
« Ответ #3 : Ноябрь 20, 2007, 16:37 »

Цитировать
QItemSelectionModel * QAbstractItemView::selectionModel () const
Returns the current selection model.
See also setSelectionModel() and selectedIndexes().

Ну а у него сигнал

Цитировать
void currentChanged ( const QModelIndex & current, const QModelIndex & previous )
Записан
vipet
Бывалый
*****
Offline Offline

Сообщений: 452


Просмотр профиля
« Ответ #4 : Ноябрь 30, 2007, 22:04 »

span,

спасибо, то что надо!

Правда я все равно наследовался в итоге, т.к. понадобилась еще и другая функциональность (перенаправлять нажатия Enter'a в нажатие Tab'a и прочее).
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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