C++ 单击按钮按钮时调用对象函数
我是新来的。我有一个问题,连接Qt窗口小部件与C++对象< /P> main.cppC++ 单击按钮按钮时调用对象函数,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();
#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