Вызов метода QMainWindow в его методе класса экземпляра

у меня есть MainWindow учебный класс

class MainWindow : public QMainWindow
{
customClass * obj;
public:
void foo(bool);
}

Вот мой customClass:

class customClass
{
void foo1(bool);
}

Теперь я хочу позвонить foo() метод в foo1(),

Как это сделать?

0

Решение

Вы можете сделать конструктор вашего customClass взять указатель на MainWindow который он хранит в переменной-члене для последующего использования.

class customClass
{
public:
customClass(MainWindow* mainWindow)
: mainWindow_(mainWindow)
{
}

void foo1(bool b) {
mainWindow_->foo(b);
}

private:
MainWindow* mainWindow_;
}
1

Другие решения

Один из способов — использование шаблона внедрения зависимостей: ссылка на сайт

struct A;
struct B
{
B( A& a );

void foo1()
{
m_a.foo();
}

private:
A& m_a;
}

struct A
{
void foo(){}
B m_b;
}
0

Вы можете заставить свой MainWindow реализовывать одноэлементный шаблон (если он применим к вашему дизайну), тогда вы можете напрямую получить экземпляр из любого места, которое вам нравится.

0
По вопросам рекламы [email protected]