В главном окне приложения есть 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);
^
О чем говорит эта ошибка? Что не так?
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
Здравствуйте, The Minister, Вы писали:
TM>В главном окне приложения есть QTableView, данные рисуются в модели. В модели в функции data (для вывода данных) происходят расчеты для вывода и, если условие выполняется, то надо совершить событие (конкретно — запуск файла). Идея — испустить сигнал в модели, поймать его в главном окне и выполнить событие.
TM>В модели делаю проверку и испускаю сигнал в главное окно:
TM>TM>QVariant AlarmsModel::data( const QModelIndex& index, int role ) const
TM>{
TM> if //
TM> emit runAlarm(alarm);
TM>}
TM>
TM>...
А зачем вам такие проверки? Какая логика? Когда вызывается метод data решает вьюха, это своего рода callback. Он может быть вообще ни разу не вызван.
Вы видимо не совсем хорошо поняли зачем нужны модели. Модель это на самом деле прокси между вашей логикой и кутэшным отображением. Считать нужно в вашем коде.