Краткое введение: приложение в основном работает с вкладками, поэтому в главном окне (класс MainWindow) находятся только QTabWidget и QMenuBar. Вот кусок кода из mainwindow.cpp в котором нужно создать новую вкладку с виджетом SearchBookTabForm (в котором в свою очередь создается другие виджеты),
void MainWindow::on_searchBook_triggered()
{
SearchBookTabForm *bookSearch = new SearchBookTabForm();
QTabWidget *mainTabs = this->findChild<QTabWidget*>("mainTabs");
int curIndex = mainTabs->addTab(bookSearch, tr("Поиск книги"));
mainTabs->setCurrentIndex(curIndex);
}
Нужно найти потомка bookSearch и соединить высылаемый им сигнал с одним из слотов MainWindow. Т.е. что-то вроде этого:
void MainWindow::on_searchBook_triggered()
{
SearchBookTabForm *bookSearch = new SearchBookTabForm();
QTabWidget *mainTabs = this->findChild<QTabWidget*>("mainTabs");
int curIndex = mainTabs->addTab(bookSearch, tr("Поиск книги"));
mainTabs->setCurrentIndex(curIndex);
QPushButton *editButton = bookSearch->findChild<QPushButton*>("editButton");
QObject::connect(bookSearch, SIGNAL(editBook(int)),
this, SLOT(editBook(int)));
}
Жаль только, что приведенный пример не работает

А теперь вопрос на миллион: почему? И как это исправить и сделать то, что я хочу.
Пользователь решил продолжить мысль 07 Ноября 2012, 18:21:32:
Все, догадался как сделать: через промежуточный слот в bookSearch.