Название: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 14:05 Уважаемы коллеги помогите горю. Присоединенный слот не выполняется.
field.h: Код
field.cpp: Код
Компилятор не ругается. Но слот waitValue() не выполняется. Если строку в которой соединение происходит заменить на: connect(tablewidget,SIGNAL(cellClicked(int,int),tablewidget, SLOT(hide())); то все отлично отрабатывает. Со своим слотом работает отлично, но не со слотом класса field. при ручном вызове функции waitValue() тоже все отлично. Как понять причину не вызова? Что я упускаю? Название: Re: Не выполняется присоединенный слот Отправлено: __Heaven__ от Апрель 03, 2017, 14:17 Вы принципиально не пишете тип возвращаемого значения в методах?
Название: Re: Не выполняется присоединенный слот Отправлено: gil9red от Апрель 03, 2017, 14:22 Daywer, пожалуйста оформляйте код. Выше смайлов есть комбобокс с языками, выделите код, кликните на комбобокс и выберите из списка нужный язык.
Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 14:27 Вы принципиально не пишете тип возвращаемого значения в методах? Пока пробую нет. Это не принципиально сейчас. Даже если напишу что Int ничего не изменитсяНазвание: Re: Не выполняется присоединенный слот Отправлено: Пантер от Апрель 03, 2017, 14:30 Daywer, отформатируй свое первое сообщение тегом code
Код
И приведи полный код, без обгрыженных типов возвращаемых значений. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 14:30 Daywer, пожалуйста оформляйте код. Выше смайлов есть комбобокс с языками, выделите код, кликните на комбобокс и выберите из списка нужный язык. Спасибо. Я исправлюсьНазвание: Re: Не выполняется присоединенный слот Отправлено: qate от Апрель 03, 2017, 14:35 connect(tablewidget,SIGNAL(cellClicked(int,int),tablewidget, SLOT(hide())); скобки не попутал ? Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 14:39 connect(tablewidget,SIGNAL(cellClicked(int,int),tablewidget, SLOT(hide())); скобки не попутал ? нет. Скопировал криво просто. Форматировал текст пока видно накосячил. Название: Re: Не выполняется присоединенный слот Отправлено: __Heaven__ от Апрель 03, 2017, 15:32 Вы принципиально не пишете тип возвращаемого значения в методах? Пока пробую нет. Это не принципиально сейчас. Даже если напишу что Int ничего не изменитсяНазвание: Re: Не выполняется присоединенный слот Отправлено: __Heaven__ от Апрель 03, 2017, 15:40 Ещё можно попробовать другой тип коннекта
Код Возможно, компиль выдаст полезную диагностику в случае неуспеха Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 15:48 Вы принципиально не пишете тип возвращаемого значения в методах? Пока пробую нет. Это не принципиально сейчас. Даже если напишу что Int ничего не изменитсяПоправил как вы говорили - нет результата. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 15:49 Ещё можно попробовать другой тип коннекта Код Возможно, компиль выдаст полезную диагностику в случае неуспеха Компиль не сругался. Собралось все. Но результат тот же. Название: Re: Не выполняется присоединенный слот Отправлено: gil9red от Апрель 03, 2017, 16:06 Фигня какая-то выходит :)
Приложите к сообщению архив с проектом с данной проблемой (в дополнительные опции при составлении сообщения есть кнопка вложения) Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 16:39 Фигня какая-то выходит :) Приложите к сообщению архив с проектом с данной проблемой (в дополнительные опции при составлении сообщения есть кнопка вложения) Прикрепил к первому сообщению Название: Re: Не выполняется присоединенный слот Отправлено: __Heaven__ от Апрель 03, 2017, 17:11 Код Так работает. Какая-то проблема, кажется, связанная с родителями. Как-то странно у вас связь настроена. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 17:22 Код Так работает. Какая-то проблема, кажется, связанная с родителями. Как-то странно у вас связь настроена. Да. lambda в консоль выводится. С реальной функцией нет. Странно связь настроена..а как надо? Название: Re: Не выполняется присоединенный слот Отправлено: __Heaven__ от Апрель 03, 2017, 17:56 Попробуйте наследовать field от QWidget, таблицу вкладывать в него и родителем таблицы делать именно его.
Скажу сразу - предположение пальцем в небо Название: Re: Не выполняется присоединенный слот Отправлено: Mikhail от Апрель 03, 2017, 18:31 А ничего, что ваш слот возвращает значение?
Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 18:57 А ничего, что ваш слот возвращает значение? Даже если будет void ничего не измениться. Перепробовал уже.Название: Re: Не выполняется присоединенный слот Отправлено: Пантер от Апрель 03, 2017, 19:54 Эх, вы, проглядели. А я увидел. :)
Daywer, у тебя battlefield на стеке создан, он умирает при выходе из конструктора MainWindow, вот поэтому и не вызывается слот. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 21:56 Эх, вы, проглядели. А я увидел. :) Daywer, у тебя battlefield на стеке создан, он умирает при выходе из конструктора MainWindow, вот поэтому и не вызывается слот. В отладке то не умирает вроде....И где его создавать же тогда. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 21:59 Попробуйте наследовать field от QWidget, таблицу вкладывать в него и родителем таблицы делать именно его. Скажу сразу - предположение пальцем в небо Надо попробовать. Но что-то поле рождается вне окна и пропадает тут же. Пока этот вариант тоже пробую. Название: Re: Не выполняется присоединенный слот Отправлено: Пантер от Апрель 03, 2017, 22:09 Эх, вы, проглядели. А я увидел. :) Daywer, у тебя battlefield на стеке создан, он умирает при выходе из конструктора MainWindow, вот поэтому и не вызывается слот. В отладке то не умирает вроде....И где его создавать же тогда. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 03, 2017, 22:32 Эх, вы, проглядели. А я увидел. :) Daywer, у тебя battlefield на стеке создан, он умирает при выходе из конструктора MainWindow, вот поэтому и не вызывается слот. В отладке то не умирает вроде....И где его создавать же тогда. Через зачленивание работает. Преогромнейшее спасибо. Ошибку понял переварить осталось в уме все это Хотел чтоб код в классах таился и не толкать лишнее в mainwindow, но......... Наверное надо было сделать battlefield наследником QTableWidget изначально. Название: Re: Не выполняется присоединенный слот Отправлено: Daywer от Апрель 04, 2017, 08:01 Хочу сказать спасибо участникам этого форума. Помогли и никто не послал даже. Добрые отзывчивые люди.
|