2013-04-22 99 views
0

QMainWindow中的方法我有一个MainWindow在调用它的实例类方法

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

这里是我的customClass:

class customClass 
{ 
    void foo1(bool); 
} 

现在,我想打电话给foo()方法foo1()

如何做到这一点?

回答

0

的途径之一 - 使用依赖注入模式:link

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

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

private: 
    A& m_a; 
} 

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

对于初学者来说不是简单吗? – shivshnkr 2013-04-22 17:39:51

+0

它很简单,因为它可以。您应该将类​​MainWindow的指针或引用传递给类customClass的构造函数并保存在某个成员中。然后你可以使用它。 – 2013-04-22 17:50:14

0

你可以让你的主窗口实现了单件模式(如果它适用于您的设计),那么你可以直接从任何地方你会得到一个实例喜欢。

1

您可以使customClass的构造函数的指针指向MainWindow,它存储在成员变量中供以后使用。

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

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

private: 
    MainWindow* mainWindow_; 
} 
相关问题