Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: xintrea от Декабрь 24, 2008, 14:36



Название: Не удается связать сигнал от QListView::selectionModel() со слотом
Отправлено: xintrea от Декабрь 24, 2008, 14:36
Здравствуйте!


Что-то я туплю в последнее время, не могу сделать простую вещь.

Есть у меня ссылка на объект QListView *recordview. Я могу для этого объекта соединять сигналы со слотами. Вот так

Код:
connect(recordview, SIGNAL(doubleClicked(const QModelIndex &)),
         this, SLOT(edit_field_context(void)));

В том же месте кода я пытаюсь связать сигналы от selectionModel() этого объекта. Пишу так

Код:
connect(recordview->selectionModel(), 
         SIGNAL(currentRowChanged (const QModelIndex&, const QModelIndex&)),
         this,
         SLOT(select(const QModelIndex&)));

connect(recordview->selectionModel(),
         SIGNAL(selectionChanged (const QItemSelection&, const QItemSelection&)),
         this,
         SLOT(tools_update(void)));

Программа компилится, но при работе выдает такое:

Код:
QObject::connect: Cannot connect (null)::currentRowChanged (const QModelIndex&, const QModelIndex&) to recordtablescreen::select(const QModelIndex&)
QObject::connect: Cannot connect (null)::selectionChanged (const QItemSelection&, const QItemSelection&) to recordtablescreen::tools_update(void)

Соответственно, сигналы не ловятся, программа не работает как надо.

Вопрос. Чего делаю не так, и как нада делать?


Название: Re: Не удается связать сигнал от QListView::selectionModel() со слотом
Отправлено: BRE от Декабрь 24, 2008, 14:38
А модель в recordview ты уже установил?


Название: Re: Не удается связать сигнал от QListView::selectionModel() со слотом
Отправлено: xintrea от Декабрь 24, 2008, 14:41
А модель в recordview ты уже установил?

Какая связь между моделью данных и selectionModel ?


Название: Re: Не удается связать сигнал от QListView::selectionModel() со слотом
Отправлено: BRE от Декабрь 24, 2008, 14:42
А модель в recordview ты уже установил?

Какая связь между моделью данных и selectionModel ?
Прямая.

Цитата из assistant:
Цитировать
void QAbstractItemView::setModel ( QAbstractItemModel * model )   [virtual]
Sets the model for the view to present.
Note: This function will also create and set a new selection model, replacing any previously set with setSelectionModel(), but the old selection model will not be deleted.
Если model() == 0, то и selectionModel() == 0.


Название: Re: Не удается связать сигнал от QListView::selectionModel() со слотом
Отправлено: xintrea от Декабрь 24, 2008, 20:29
Угу.