通過json對控制項的某些狀態做持久化

2021-10-05 02:34:11 字數 1112 閱讀 8912

json格式

struct window

};

將從檔案中的json格式內容解析到字段中:

void window::parse(const json::value & v)

if (isvaluevalid(value, "toolboxoffset"))

if (isarrayvalid(value, "panels")));}

} }

將字段儲存到json格式的變數中:

json::value window::obtain()

return value;

}

都儲存到value中,在將value轉為string即可

std::string serialize::deserialization()

在儲存期間遇到了一種情況就是listwidget所對應的組id對映關係非常複雜,需要多加很多字段進行儲存和map進行對映,所以在tlistwidget(公司重寫的控制項)等控制項中增加乙個qvarient變數和set及get方法用來儲存繫結的資訊

#define decleare_tiger_data \

private: \

qvariant m_ptigerdata; \

public: \

void settigerdata(const qvariant & var) \

qvariant gettigerdata() const

增加了乙個巨集

呼叫方法:

qvariant variant;

variant.setvalue(group.groupid);

normalwidget->settigerdata(variant);

if (m_ptabwidget != nullptr)

}

未註冊型別的註冊:

#include q_declare_metatype(std::string);

通過AOP對某些方法進行統一操作

aop常用註解 aspect 作用是把當前類標識為乙個切面供容器讀取 pointcut pointcut是植入advice的觸發條件。每個pointcut的定義包括2部分,一是表示式,二是方法簽名。方法簽名必須是 public及void型。可以將pointcut中的方法看作是乙個被advice引用的...

C 對某些特性的貶斥

0.問題的引入 一直覺得我的3dlib裡面的.h檔案的這段 很彆扭 namespace cppyin 3dlib 彆扭在全域性變數的定義這裡。我希望所有 include這個標頭檔案的程式,能夠訪問這3個全域性變數。但如果不加上static就會出現重複定義的情況。其實大家都知道另外乙個方法也可以解決,...

對JSON的理解

json是一種結構化資料,它是一種資料格式 json可以概括為三種型別 簡單值 物件 陣列 注意 json不支援變數 函式和物件例項 包括字串 數值 布林值 和null json不支援js中的undefined 例如 5 json數值 hello json字串 json字串必需使用雙引號!布林值和n...