crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как из модели списка испустить сигнал?
softminister
  опции профиля:
сообщение 24.5.2021, 10:56
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 28.4.2021
Пользователь №: 5261

Спасибо сказали: 0 раз(а)




Репутация:   0  


В главном окне приложения есть QTableView, данные рисуются в модели. В модели в функции data (для вывода данных) происходят расчеты для вывода и, если условие выполняется, то надо совершить событие (конкретно - запуск файла). Идея - испустить сигнал в модели, поймать его в главном окне и выполнить событие.

В модели делаю проверку и испускаю сигнал в главное окно:

QVariant AlarmsModel::data( const QModelIndex& index, int role ) const
{

  if //
    emit runAlarm(alarm);

}


где runAlarm(alarm) определен в хедере:

signals:
    void runAlarm(struct Alarm alarm);


И на этом ошибка на строку "emit runAlarm(alarm)":

D:\...\alarmsmodel.cpp:182: error: passing 'const AlarmsModel' as 'this' argument discards qualifiers [-fpermissive]
..\...\alarmsmodel.cpp: In member function 'virtual QVariant AlarmsModel::data(const QModelIndex&, int) const':
..\...\alarmsmodel.cpp:182:44: error: passing 'const AlarmsModel' as 'this' argument discards qualifiers [-fpermissive]
                         emit runAlarm(alarm);
                                            ^


О чем говорит эта ошибка? Что не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 25.5.2021, 11:49
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


softminister, наверное, нужно сделать runAlarm константным. И слот тоже
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 22.11.2024, 13:57