qstandarditemmodel是乙個通用的模型類:
1、能夠以任意的方式組織資料(線性、非線性);
2、資料組織的基本單位為資料項(qstandarditem);
3、每乙個資料項能夠儲存多個資料狀態(附加資料角色);
4、每乙個資料項能夠對資料狀態進行控制(可編輯,可選。。。)。
組織結構如下:
新型別引入:qvariant:
1、qvariant 是乙個用於封裝的型別;
2、qvariant 能夠表示大多數常見的值型別;
3、qvariant 每次只能封裝(儲存)單一型別的值;
4、qvariant 意義在於能夠設計「返回型別可變的函式」。
應用例項如下:
int main(int argc, char *argv)
執行結果:
注:在對qvariant型別的資料進行操作時,應首先檢查其是否可用。(isvalid()函式)
1、解析資料來源中的資料(資料庫,網路,串列埠,等);
2、將解析後的資料存入qstandarditem物件中;
3、根據資料間的關係在qstandarditemmodel物件中組織資料項;
4、選擇合適的檢視顯示資料項。
例項分析:
分析思路如下:
系統架構圖:
工程中常用的資料應用架構分為4層:
資料層,資料表示層,資料組織層,資料顯示層。
系統核心類圖:
具體實現:
將每個功能層做成乙個相對應的類,從而根據具體類實現相應的功能。
1、datasource類的設計與實現:
設定資料來源並讀取資料;對資料進行解析後生成資料物件。
.h檔案如下:
#include #include #include "scoreinfo.h"
class datasource : public qobject
;
2、scoreinfo類的設計與實現:
封裝資料源中的一組完整資料;提供返回具體資料值的介面函式。
.h檔案如下:
#include #include class scoreinfo : public qobject
;
3、scoreinfomodel類的設計與實現:
使用標準模型類qstandarditemmodel作為成員;以scoreinfo類物件為最小單位進行資料組織。
.h檔案如下:
#include #include #include #include "scoreinfo.h"
class scoreinfomodel : public qobject
;
問題1:為什麼datascoure類中獲取資料的方式是fetchdata,而不是getdata?
答:我們來看fetchdata()的具體實現:
qlistdatasource::fetchdata()
函式實現過程中,對取到的資料進行複製,並且將取到的資料刪除,避免了資料的冗餘。
問題2:這樣架構乙個資料應用程式有什麼好處?
答:當資料來源或者檢視需要發生變化的時候,可以最小程度的減少**改動,將改動可以具體到每一次。
自定義使用者模型類 遷移使用者模型類
django.contrib.auth1.包含認證框架的核心和預設的模型。django認證系統包含的內容 使用者 使用者模型類 使用者認證。許可權 標識乙個使用者是否可以做乙個特定的任務,mis系統常用到。組 對多個具有相同許可權的使用者進行統一管理,mis系統常用到。密碼 乙個可配置的密碼雜湊系統...
自定義網路模型
看看python 函式 self kwargs.比如4.4的centerlayer沒引數,別的有引數,那麼函式定義裡面哪個指的是傳入的tensor 好像懂了,通過4.4.2,自定義帶引數的層,利用parameterdict定義所需引數,forward函式的引數列表就是傳入的地方 更新 我感覺init...
PyTorch 自定義層(區別於自定義模型)
博主在學習三值神經網路時,使用了lenet 5模型,程式設計 需要對lenet 5模型中的卷積層與全連線層進行自定義,搜尋他人方法後,博主產生了乙個疑問,絕大多數提供的自定義層方法都是繼承nn.module模型,而這方法據說是官方提供 官網 pytorch 自定義線性層 如下 class linea...