Название: [РЕШЕНО] Не удается поймать сигнал Отправлено: Disa от Января 19, 2012, 15:28 Добрый день.
Дочерний класс от MainWindow кидает сигнал при изменении одной из переменных в неком методе (как я понимаю, не важно в каком именно): Код: if (...) { В это ветвление программа попадает достаточное количество раз (то есть хотя бы один раз, проверенно дебаггером). Родитель ловит этот сигнал в конце конструктора: Код: void MainWindow::MainWindow() { Тут: Код: void MainWindow::createDockWindows() { и Код: void MainWindow::drawTerminalViewer (editorScene *_editor) { Но Док виджет остается пустой (то есть текст не рисуется) при выполнении условия в ветвлении и посылки сигнала. Не могли бы пожалуйсто объяснить почему? PS: Еще не очень хорошо разобрался с механизмом cигналов и слотов и не могу понять как определить метод в который нужно писать ф-ию connect (если ,например, указатели на объекты присутсвуют в нескольких методах - какой принцип выбора?) За ранее благодарен. Название: Re: Не удается поймать сигнал Отправлено: Пантер от Января 19, 2012, 15:34 У слота должно быть не больше параметров, чем у сигнала.
Название: Re: Не удается поймать сигнал Отправлено: GreatSnake от Января 19, 2012, 15:36 Измени слот:
Код
Название: Re: Не удается поймать сигнал Отправлено: kambala от Января 19, 2012, 15:37 у слота не может быть параметров больше, чем у сигнала.
- вариант 1: Код а в эдиторе: Код - вариант 2 (если эдитор существует всего один): Код - вариант 3 (упрощение варианта 1): см. пост GreatSnake'а Название: Re: Не удается поймать сигнал Отправлено: GreatSnake от Января 19, 2012, 15:40 2 kambala
1-й вариант избыточный, т.к. есть QObject::sender(). Название: Re: Не удается поймать сигнал Отправлено: Disa от Января 19, 2012, 15:53 Спасибо за оперативные ответы! Заработало
Название: Re: Не удается поймать сигнал Отправлено: SASA от Января 20, 2012, 10:01 2 kambala QObject::sender() редко использует настоящий джедай.1-й вариант избыточный, т.к. есть QObject::sender(). Вариант первый более правильным вижу я. |