【发布时间】:2017-10-31 17:01:14
【问题描述】:
我需要访问不同类中的 mainWindow 对象。问题是,我不能把 mainWindow 给这个类(我不想这样做,这会使一切变得更加复杂)。问题:在 C++ 或 Qt 中是否有任何方法可以将对象放入本地“数据库”或项目中的每个其他类都可以查看并与对象通信的地方。 我最终想要的是这样的:
// A.h
#ifndef A_H
#define A_H
class A{
public:
A() { /*here comes the ting*/ myMainWindow->sayHi(); }
};
#endif // A_H
// MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "a.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
A *a = new A;
}
MainWindow::~MainWindow(){delete ui;}
MainWindow::sayHi(){
// just do anything
}
我不认为,这是可能的,但我试一试...... 感谢您的回答!
【问题讨论】:
-
为什么需要 mainWindow 对象?您可以使用信号和插槽从其他类访问 main。 doc.qt.io/qt-4.8/signalsandslots.html
-
但我需要在 mainWindow 对象本身上调用它。我是我的 mainWindow 类,我实现了一个函数,当我执行只有其他类接收到的操作时,我想执行这个函数,而不是 mainWindow。为了将此类与正确的 mainWindow 插槽连接,我需要实际的 mainWindow 对象
-
把信号槽连接放在你的主。这是可能的。我对你的项目一无所知,但有可能
-
@mep 访问权限到底是什么意思,是指使用他们的方法之一吗?
-
是的,这正是我想要的。我无法在主窗口中连接它,因为我尝试在 mainWindow 中调用这个方法的类是在另一个类中创建的,它也不知道 mainWindow