QT:如何在所有.ui中共享同一个对象

时间:2015-05-15 17:44:24

标签: c++ qt

我是QT的新手,这可能(我希望)很容易解决,但我真的不知道该怎么做。

我的程序非常简单,主窗口只有很少的按钮,但我的问题是:

在main.cpp中我从文件中加载一个列表并将其保存在指针中(例如:listPointer),我需要从许多不同的.ui和.cpp(我的意思是Qt类)访问该列表中的信息Form Pack,.ui .h .cpp)。

我不知道哪种方式最好。在mainwindow.h中,我添加了一个列表指针来获取引用,并在.cpp中通过this-> listPointer访问它并且可以工作,但是当我尝试从其他Qt类(例如:Search.cpp)访问它时,我的应用程序只是崩溃,因为我试图访问错误的内存块。

所以我的问题是,如何将此列表共享给所有QT对象。

我希望你理解我的问题,英语不是我的母语,所以也许你不会。

1 个答案:

答案 0 :(得分:0)

如果您的主窗口在应用程序的整个生命周期中都存在,并且您只需要一个主窗口实例,则可以简单地使主窗口类单例化。您可以将列表指针保持为主窗口的成员,并为其添加一个getter方法。

然后,您可以从应用程序的任何位置访问您的列表,例如

QList<String>* list = MyMainWindow::getInstance()->getList();