Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [Qt][C++][noob]Поиск потомка  (Прочитано 928 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн HerrWeigel

  • Автор темы
  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
[Qt][C++][noob]Поиск потомка
« : 07 Ноября 2012, 17:39:21 »
Краткое введение: приложение в основном работает с вкладками, поэтому в главном окне (класс 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.
« Последнее редактирование: 07 Ноября 2012, 18:21:32 от HerrWeigel »
Ubuntu 12.04 + Slackware 14.0

 

Страница сгенерирована за 0.014 секунд. Запросов: 22.