Вы не можете сделать это напрямую с помощью updatepage(2)
, что вы можете сделать, объявив использование функции в заголовке со значением по умолчанию, но это всегда изменится на второй странице:
Содержимое "ah":
#include "b.h"
class A {
...
public slots:
void updatepage(int index = 2);
public:
void setBDialogWindow(B* bDialogWindow);
...
private:
B* m_bDialogWindow;
...
};
В конструкторе B добавьте инициализацию m_aDialogWindow
и соединение:
m_bDialogWindow = 0;
connect( ui->pushButton, SIGNAL(released()), this, SLOT(updatepage()));
и в реализацию ("a.cpp"):
void A::setBDialogWindow(B* bDialogWindow){
m_bDialogWindow = bDialogWindow;
}
void A::updatepage(int index) {
if ( m_bDialogWindow){
m_bDialogWindow->ui->stackedWidget->setcurrentIndex(index);
}
}
Также вам нужно изменить доступ пользовательского интерфейса в B
на public
, это не очень хорошая практика и должно быть сделано с помощью другого метода, но для примера это нормально.
Наконец, в main добавьте после объявления B и перед b.show () следующее:
a.setBDialogWindow(&w);