最近要写一个UI小工具, 功能是根据一个接口地址读取内容, 解析完展示给用户, 然
后经过一些用户操作, 再根据配置跟用户的选择, 生成一个服务配置, 去启动服务.
这个接口地址, 还有服务配置中有一些内容是需要配置的.
工具在启动时会从一个json格式的文件去读配置, 如果配置文件不存在, 就初始化并
创建这个配置文件. 就是这一步有一些疑惑.
原来这个工具是Python写的, 读配置的方法运行时判断如果配置文件不存在, 或者解
出来的json为空或者无效, 就返回Null, 这样在主程序中得到Null后就会调用另一
个方法去初始化创建.
在Qt里面, 我把这个配置写在了主窗口的private变量, 在主窗口的构造函数里赋
值.
但是在Qt里面这个赋值就有点疑惑了,
先是建了
private:
QJsonObject globalConfig;
QJsonObject readConfig(QString filepath);
QJsonObject createConfig(QString filepath);
调用readConfig()给这个globalConfig赋值, 但是这样无法赋值为NULL, 因为类
型不一致.
然后改成
private:
QJsonObject *globalConfig;
QJsonObject *readConfig(QString filepath);
QJsonObject *createConfig(QString filepath);
这样可以赋值为NULL了, 但是正常结果无法返回了, 提示"address of local
variable returned"
这感觉更像是一个怎么写C++的问题... 这样的需求怎样做是最佳实践?
--
FROM 124.193.184.*