Я пытаюсь установить переменную, к которой могут обращаться несколько дочерних элементов на уровне MainWindow (QMainWindow).Проблема заключается в том, что всякий раз, когда я пытаюсь получить к нему доступ от ребенка (или внука), у меня возникает ошибка сегментации.
Вот макет соответствующего кода:
//MainWindow.h
...
public:
int getVariable();
void setVariable(int i);
...
private:
int globalInt;
SomeWidget *myWidget;
//MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
...
this->globalInt = 10;
myWidget = new SomeWidget();
myWidget->setParent(this);
....
}
int getVariable()
{
return this->globalInt;
}
void setVariable(int i)
{
this->globalInt = i;
}
...
//SomeWidget.cpp
...
int x = (static_cast<MainWindow*>(this->parent()))->getVariable(); //Causes Segfault
...
Я, честно говоря, понятия не имею, что я делаю неправильно.Я попытался создать новый указатель MainWindow * на родительский объект и привести его в исходное состояние, я попытался сделать глобальный int публичным и получить к нему прямой доступ и т. Д. И т. Д. Есть идеи, что мне нужно сделать?