C++ 如何从Qt中的另一个cpp文件访问cpp文件中的变量?
我有一个变量QStringList,它在Sql.cpp文件中有一些列表,但我想在Edit.cpp中使用该列表。怎么做 在sql.h中:C++ 如何从Qt中的另一个cpp文件访问cpp文件中的变量?,c++,qt,qt-creator,C++,Qt,Qt Creator,我有一个变量QStringList,它在Sql.cpp文件中有一些列表,但我想在Edit.cpp中使用该列表。怎么做 在sql.h中: public: QString path; static QStringList list; 在sql.cpp->connectDB()函数中: void sql::connectDB() { QDir dir; path=ui->dbpath->text(); dir.setPath(path); dir.setNam
public:
QString path;
static QStringList list;
在sql.cpp->connectDB()函数中:
void sql::connectDB()
{
QDir dir;
path=ui->dbpath->text();
dir.setPath(path);
dir.setNameFilters(QStringList()<<"*.db");
list= dir.entryList();
}
void sql::connectDB()
{
QDir-dir;
path=ui->dbpath->text();
目录设置路径(路径);
dir.setNameFilters(QStringList()您可以在Edit.cpp中将其声明为extern
extern QStringList VarName;
更新:
似乎您需要将QStringList sql::list;
定义添加到sql中。cpp请提供一个问题示例,考虑从中学习,而不是随机编码。典型的方法是在头文件中声明这样一个变量(通过使用extern
),在一个.cpp文件中定义它,并在您想使用该变量的任何地方包含这样的头。extern
如果在运行时填充并更改QStringList是不好的。使用信号和插槽以及qRegisterMetaType
。如果QStringList是常量数据,我会说可以使用extern
。它在ru时更改n次。我在sql.h中公开声明它为“QStringList list;”,并直接在sql.cpp中使用。没问题。然后,我在edit.cpp中包含了sql.h文件,并将其用作缺少模板参数的“qDebug(),但它正在获取错误”"在SQL.cpp中使用变量的位置file@JaganPJ您的sql.cpp中是否有QStringList sql::list;
定义?@JaganPJ这是一个声明,而不是定义。请参阅如何定义静态类成员抱歉..这是声明。顺便说一句,在添加您告诉的声明后,它现在正在工作。谢谢非常感谢你的时间
void edit::on_pushButton_clicked()
{
SecDialog s;
s.setModal(true);
qDebug()<< sql::list.at(0);
s.exec();