C++ 单击按钮按钮时调用对象函数

C++ 单击按钮按钮时调用对象函数,c++,qt,user-interface,C++,Qt,User Interface,我是新来的。我有一个问题,连接Qt窗口小部件与C++对象< /P> main.cpp #include "mainwindow.h" #include <QApplication> #include <DBMS.h> int main(int argc, char *argv[]) { DBMS dbms; QApplication a(argc, argv); MainWindow w; w.show();

我是新来的。我有一个问题,连接Qt窗口小部件与C++对象< /P> main.cpp

#include "mainwindow.h"
#include <QApplication>
#include <DBMS.h>

int main(int argc, char *argv[])
{
    DBMS dbms;
    
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}
DBMS.cpp

#include <DBMS.h>

DBMS::DBMS()
{

}

void DBMS::addName(QString strName)
{
    str.push_back(strName);
}

DBMS::~DBMS()
{

}
#包括
DBMS::DBMS()
{
}
void DBMS::addName(QString strName)
{
str.push_back(strName);
}
数据库管理系统::~DBMS()
{
}
DBMS.h

#ifndef DBMS_H
#define DBMS_H
#include <QString>
#include <vector>

class DBMS
{
public :
    DBMS();
    void addName(QString);
    ~DBMS();
private:
    std::vector <QString> str;
};



#endif // DBMS_H
\ifndef DBMS\u H
#定义数据库管理系统
#包括
#包括
类数据库管理系统
{
公众:
数据库管理系统();
void addName(QString);
~DBMS();
私人:
std::载体str;
};
#endif//DBMS\u H
我的问题是:当我单击CreateNewDatabase按钮时,如何从DBMS.cpp调用函数“addDatabase(Qstring)” (CreateNewDatabase按钮是在Qt设计器中创建的)


我认为这可能涉及信号和插槽,但我一直在网上搜索,没有找到明确的答案,这不是有人可以告诉你答案的,你需要了解信号/插槽机制在Qt中是如何工作的

例如,类DBMS必须从QObject派生

在Qt助手的索引部分中搜索以下术语:Q_对象

然后阅读本节中的一些链接:
另请参见元对象系统、信号和插槽以及Qt的属性系统。

是否有使用
std::vector
,而不是a的具体原因?您的DBMS有一个函数
DBMS::addName()
,该函数应定义为使用信号/插槽模型调用的插槽。。。为此,您的DBMS也应该具有Q_OBJECT宏,并注意,为了
QObject::connect()
向插槽发送信号,DBMS对象应该在
主窗口中已知。。您可以在
mainwidow
中创建DBMS对象。。
#ifndef DBMS_H
#define DBMS_H
#include <QString>
#include <vector>

class DBMS
{
public :
    DBMS();
    void addName(QString);
    ~DBMS();
private:
    std::vector <QString> str;
};



#endif // DBMS_H