Добрый день.
Дочерний класс от MainWindow кидает сигнал при изменении одной из переменных в неком методе (как я понимаю, не важно в каком именно):
if (...) {
current_element_index = index;
emit changeCurrentIndex();
}
В это ветвление программа попадает достаточное количество раз (то есть хотя бы один раз, проверенно дебаггером).
Родитель ловит этот сигнал в конце конструктора:
void MainWindow::MainWindow() {
setAttribute(Qt::WA_DeleteOnClose);
editor = new editorScene(this);
setCentralWidget (editor);
createDockWindows();
connect(editor, SIGNAL(changeCurrentIndex()), this,
SLOT(drawTerminalViewer(editorScene*)));
}
Тут:
void MainWindow::createDockWindows() {
dock = new QDockWidget(tr("Terminal viewer"), this);
dock->setAllowedAreas(Qt::RightDockWidgetArea);
terminal_viewer = new QLabel(dock);
dock->setWidget (terminal_viewer);
dock->setFeatures (QDockWidget::NoDockWidgetFeatures);
}
и
void MainWindow::drawTerminalViewer (editorScene *_editor) {
QString test = "Index_change!";
terminal_viewer->setText(test);
}
Но Док виджет остается пустой (то есть текст не рисуется) при выполнении условия в ветвлении и посылки сигнала. Не могли бы пожалуйсто объяснить почему?
PS: Еще не очень хорошо разобрался с механизмом
cигналов и слотов и не могу понять как определить метод в который нужно писать ф-ию connect (если ,например, указатели на объекты присутсвуют в нескольких методах - какой принцип выбора?)
За ранее благодарен.