Как получить доступ к указателю родительского виджета в QT - PullRequest
1 голос
/ 14 декабря 2010

У меня есть примерно такой код

Window::Window()
{
   QStackedWidget *centralApp = new QStackedWidget;
   QWidget1 *wgt1 = QWidget1;
   QWidget2 *wgt2 = QWidget2;
   QWidget3 *wgt3 = QWidget3;

   centralApp->addWidget(wgt1);
   centralApp->addWidget(wgt2);
   centralApp->addWidget(wgt3);
}

Классы QWidget1,QWidget2 и QWidget3 наследуются от QWidget, и каждый содержит две кнопки btn1 и btn2.Эти кнопки я хочу использовать две кнопки в каждом виджете, чтобы перейти к двум другим виджетам, добавленным в сложенный виджет.Таким образом, чтобы перейти на другую страницу в сложенном виджете, я должен использовать setCurrentIndex(), и для этого мне нужен родительский указатель QStackedWidget.Кто-нибудь может мне подсказать, как я могу получить доступ к указателю QStackedWidget внутри виджетов на его странице, чтобы перейти на другую страницу?

Пожалуйста, дайте мне знать, если я не ясно объясню проблему.

Ответы [ 2 ]

5 голосов
/ 14 декабря 2010

Я бы попросил ваши подклассы подать сигнал - например, «next» и «prev» - и затем подключить этот сигнал в главном окне, чтобы переключить текущий виджет QStackWidget.

В противном случае,вы тесно связываете свои сложенные виджеты так, что это не нужно.

1 голос
/ 14 декабря 2010

http://doc.qt.io/archives/4.6/qwidget.html#parentWidget

(centralApp==wgt1->parentWidget()) //true
...