QT中在头文件定义了 : QString dirpath; QDir mydir; QFileInfo myinfo; QStringList list; 在cpp文件中这样使用: //打开目录 mydir(dirpath); //获取目录文件属性 myinfo(dirpath); 为什么提示报错信息:mainwindow.cpp:43:6: error: type 'QDir' does not provide a call operator
时间: 2024-03-13 18:44:03 浏览: 26
在C++中,使用类的构造函数来创建对象。构造函数是类的一个特殊成员函数,用于创建和初始化对象。在你的代码中,你试图通过调用`mydir(dirpath)`和`myinfo(dirpath)`的方式来初始化`mydir`和`myinfo`对象,但是这是错误的方式。
正确的方式应该是使用构造函数来创建和初始化对象,例如:
```cpp
mydir = QDir(dirpath);
myinfo = QFileInfo(dirpath);
```
或者更好的方式是,在类的构造函数中初始化这些对象:
```cpp
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0) : QMainWindow(parent)
{
mydir = QDir(dirpath);
myinfo = QFileInfo(dirpath);
}
private:
QString dirpath;
QDir mydir;
QFileInfo myinfo;
QStringList list;
};
```
这样,在创建`MainWindow`对象时,`mydir`和`myinfo`对象将会被正确初始化。
相关问题
OtherClass.h 中定义了private: QString csv_sdk_id; 我如何在 mainwindow.cpp 中使用它
要在`mainwindow.cpp`中使用`OtherClass.h`中定义的私有变量`csv_sdk_id`,您需要在`OtherClass`类中提供一个公有的成员函数来获取该私有变量的值。以下是一个示例代码:
```cpp
// OtherClass.h
#include <QString>
class OtherClass
{
private:
QString csv_sdk_id; // 私有变量
public:
QString getCSVSDKID() const; // 公有成员函数,用于获取私有变量的值
};
```
```cpp
// OtherClass.cpp
#include "OtherClass.h"
QString OtherClass::getCSVSDKID() const
{
return csv_sdk_id; // 返回私有变量的值
}
```
```cpp
// mainwindow.cpp
#include "OtherClass.h"
void MainWindow::someFunction()
{
OtherClass otherObject;
QString csvSDKID = otherObject.getCSVSDKID(); // 使用公有成员函数获取私有变量的值
qDebug() << "csv_sdk_id value:" << csvSDKID;
}
```
在上面的示例中,我们在`OtherClass`中提供了一个公有成员函数`getCSVSDKID()`,用于获取私有变量`csv_sdk_id`的值。在`mainwindow.cpp`中,我们创建了一个`OtherClass`对象`otherObject`,然后通过调用`otherObject.getCSVSDKID()`来获取私有变量的值,并将其赋给`csvSDKID`。
请注意,为了在`mainwindow.cpp`中使用`OtherClass.h`中的私有变量,我们需要包含相应的头文件并创建相应的对象。然后,通过调用公有成员函数来获取私有变量的值。这样可以确保私有变量的封装性和代码安全性。
C++Qt显示在头文件中定义QAction *action,在源文件中如何使用
在源文件中使用头文件中定义的 `QAction *action`,需要先包含该头文件,然后使用作用域运算符 `::` 来访问该变量。
例如,如果头文件名为 `myheader.h`,则在源文件中可以这样使用:
```cpp
#include "myheader.h"
void MyClass::myFunction()
{
// 使用头文件中定义的 action 变量
action->setEnabled(false);
}
```
在上面的示例中,`MyClass` 是包含 `myFunction` 函数的类名,`action` 是在头文件中定义的 `QAction` 变量名。通过 `action->setEnabled(false)` 来设置 `action` 的 `enabled` 属性为 `false`。注意,在使用 `action` 前需要确保已经创建了该对象并初始化。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)