Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从Qt中的另一个cpp文件访问cpp文件中的变量?_C++_Qt_Qt Creator - Fatal编程技术网

C++ 如何从Qt中的另一个cpp文件访问cpp文件中的变量?

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

我有一个变量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.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();