執行效果如圖:
**如下:
#include #include struct studioinfo
};class cstudiolistmodel :public qabstractlistmodel
;cstudiolistmodel::cstudiolistmodel(qobject *parent /*= 0*/) :qabstractlistmodel(parent)
cstudiolistmodel::~cstudiolistmodel()
int cstudiolistmodel::rowcount(const qmodelindex & parent /*= qmodelindex()*/) const
qvariant cstudiolistmodel::data(const qmodelindex & index, int role) const
int nrow = index.row();
if (nrow>= rowcount() || nrow<0)
switch (role)
return qvariant();
}bool cstudiolistmodel::setdata(const qmodelindex &index, const qvariant &value, int role /* = qt::editrole */)
int nrow = index.row();
if (nrow>= rowcount() || nrow<0)
switch (role)
emit datachanged(index, index);
return true;
}void cstudiolistmodel::insertitems(const qlist& lstdatas)
}void cstudiolistmodel::insertitem(const studioinfo& dat)
void cstudiolistmodel::delitems()
}void cstudiolistmodel::delitem(const qstring& szstudioid)}}
}
qlistview是乙個n行多列的控制項,qabstractlistmodel模型已經實現了columncount,返回的是1。上述**包括了修改某行的學生名字,增加一行/多行學生資訊,刪除一行/多行學生資訊。需要注意的是增加要在begininsertrows和endinsertrows之間做,而刪除則是 beginremoverows()和endremoverows()之間。
rowcount用來通知model有多少行資料,data用來返回view所需要的的資料,qt::displayrole是model用來儲存展現給使用者的資料的,相當於陣列,還有其他角色,讀者可自行檢視幫助文件。setdata則是用來設定資料的,資料修改後要emit訊號datachanged,這樣view才會及時更新資料;
model的使用:
qlistlstdata;
studioinfo info;
info.szstudioid = "1001";
info.szstudioname = "zhangsan";
info.szaddress = "wuhan";
info.nage = 20;
info.bman = true;
lstdata.push_back(info);
info.szstudioid = "1002";
info.szstudioname = "lili";
info.szaddress = "beijing";
info.nage = 22;
info.bman = false;
lstdata.push_back(info);
info.szstudioid = "1003";
info.szstudioname = "wangwu";
info.szaddress = "tianjin";
info.nage = 19;
info.bman = true;
lstdata.push_back(info);
qlistview* plistview = new qlistview(this);
cstudiolistmodel* plistmodel = new cstudiolistmodel(this);
plistview->setmodel(plistmodel);
plistmodel->insertitems(lstdata);
列表顯示格式
list2 1,2,3,4,5,6,7,8,9 range start,end,step list2 start,end,step print list2 1 2 1 print list2 1 print list2 2 2 import random 取乙個60 100的隨機整數 print r...
Nginx目錄檔案列表顯示
專案中使用了tomcat,nginx,測試階段,生產階段經常會有些bug需要調查。需要有些日誌管理工具,在沒有elk的情況下,可以通過配置nginx來實現基本的日常檢視。不需要登入到linux伺服器上,通過瀏覽器即可快速獲得日誌檔案。1.準備通過web查詢的nginx日誌 var log nginx...
Nginx目錄檔案列表顯示
專案中使用了tomcat,nginx,測試階段,生產階段經常會有些bug需要調查。需要有些日誌管理工具,在沒有elk的情況下,可以通過配置nginx來實現基本的日常檢視。不需要登入到linux伺服器上,通過瀏覽器即可快速獲得日誌檔案。1.準備通過web查詢的nginx日誌 var log nginx...